Merge branch 'fronkdev' of code.fronk.at:fronk/thetool into fronkdev
This commit is contained in:
@@ -321,11 +321,9 @@ class Preorder extends mfBaseModel {
|
||||
if($this->adb_wohneinheit_id) {
|
||||
$unit = new ADBWohneinheit($this->adb_wohneinheit_id);
|
||||
if($unit && $unit->oaid && $this->oaid != $unit->oaid) {
|
||||
|
||||
$campaign = new Preordercampaign($this->preordercampaign_id);
|
||||
$unit_oaid = OpenAccessIdModel::getFirst(["oaid" => $unit->oaid]);
|
||||
|
||||
if($unit_oaid->origin == $campaign->oaid_origin) {
|
||||
if($unit_oaid && $unit_oaid->origin == $campaign->oaid_origin) {
|
||||
return $unit->oaid;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -438,8 +438,8 @@ class PreorderController extends mfBaseController {
|
||||
|
||||
$data['company'] = (trim($r->company)) ? trim($r->company) : null;
|
||||
$data['uid'] = (trim($r->uid)) ? trim($r->uid) : null;
|
||||
$data['firstname'] = (trim($r->firstname)) ? trim($r->firstname) : null;
|
||||
$data['lastname'] = (trim($r->lastname)) ? trim($r->lastname) : null;
|
||||
$data['firstname'] = trim($r->firstname);
|
||||
$data['lastname'] = trim($r->lastname);
|
||||
$data['street'] = (trim($r->street)) ? trim($r->street) : null;
|
||||
$data['housenumber'] = (trim($r->housenumber)) ? trim($r->housenumber) : null;
|
||||
$data['block'] = (trim($r->block)) ? trim($r->block) : null;
|
||||
|
||||
@@ -0,0 +1,52 @@
|
||||
<?php
|
||||
|
||||
namespace ADBRimoImport\ADBAddressHelper\Network;
|
||||
|
||||
/*
|
||||
* Netzgebiet
|
||||
* Premstätten Süd
|
||||
*/
|
||||
class Network_61105 {
|
||||
|
||||
public function checkAddress($data) {
|
||||
/*
|
||||
* array keys are a reference their original variables and must be manipulated directly
|
||||
*
|
||||
*/
|
||||
|
||||
// dererence input array keys into copies
|
||||
foreach(["strasse_name", "hausnummer_name", "addresszusatz", "gem_kz", "gem_name", "ort_name", "plz_name"] as $var) {
|
||||
$$var = $data[$var];
|
||||
}
|
||||
|
||||
//if($strasse_name == "Bierbaumerstrasse") $strasse_name = "Bierbaumer Strasse";
|
||||
//if($ort_name == "Oberpremstaetten") $ort_name = "Oberpremstätten";
|
||||
|
||||
if($gem_name == "Leoben") $gem_name = "Kalwang";
|
||||
if($ort_name == "Leoben") $ort_name = "Kalwang";
|
||||
|
||||
//if($strasse_hausnummer == "Brudergarten") continue;
|
||||
if($strasse_name == "Brudergarten Kohlbacher") $strasse_name = "Brudergarten";
|
||||
if($strasse_name == "Brudergarten" && !$hausnummer_name) return false;
|
||||
|
||||
/*if(strpos($strasse_hausnummer, '"') !== false) {
|
||||
$m = [];
|
||||
if(preg_match('/^"Sonnenweg (\d+)(?:\s+([^"]+))?/', $strasse_hausnummer, $m)) {
|
||||
$strasse_name = "Sonnenweg";
|
||||
$hausnummer_name = $m[1];
|
||||
if(array_key_exists(2, $m)) {
|
||||
$addresszusatz = $m[2];
|
||||
}
|
||||
echo "$strasse_name $hausnummer_name $addresszusatz\n";
|
||||
}
|
||||
}*/
|
||||
|
||||
|
||||
// put new values back into original pointer
|
||||
foreach(["strasse_name", "hausnummer_name", "addresszusatz", "gem_kz", "gem_name", "ort_name", "plz_name"] as $var) {
|
||||
$data[$var] = $$var;
|
||||
}
|
||||
|
||||
return true;
|
||||
}
|
||||
}
|
||||
@@ -69,10 +69,10 @@ class AddressHelper {
|
||||
return [$strasse_name, $hausnummer_name, $addresszusatz];
|
||||
}
|
||||
|
||||
public function findAddressFromRimoBuilding($building) {
|
||||
public function findUpdateAddressFromRimoBuilding($building) {
|
||||
$hausnummer = false;
|
||||
|
||||
echo "===================================\n";
|
||||
//echo "===================================\n";
|
||||
|
||||
$rimo_id = trim($building->id);
|
||||
|
||||
@@ -104,11 +104,10 @@ class AddressHelper {
|
||||
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";
|
||||
echo "$addr_dbg_str\n";
|
||||
$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
|
||||
$this->NetworkHelper->checkAddress([
|
||||
$continue = $this->NetworkHelper->checkAddress([
|
||||
"strasse_name" => &$strasse_name,
|
||||
"hausnummer_name" => &$hausnummer_name,
|
||||
"addresszusatz" => &$addresszusatz,
|
||||
@@ -118,11 +117,16 @@ class AddressHelper {
|
||||
"plz_name" => &$plz_name
|
||||
]);
|
||||
|
||||
if(!$continue) {
|
||||
echo "[WW] ($addr_dbg_str) Wurde aussortiert\n";
|
||||
return false;
|
||||
}
|
||||
|
||||
|
||||
$gemeinde = \ADBGemeindeModel::getFirst(["kennziffer" => $gem_kz]);
|
||||
if(!$gemeinde) {
|
||||
$this->log->warning("[WW] ($addr_dbg_str) Gemeinde nicht gefunden");
|
||||
echo "Gemeinde $gem_name $gem_kz nicht gefunden\n";
|
||||
$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";
|
||||
return false;
|
||||
}
|
||||
$gemeinde_id = $gemeinde->id;
|
||||
@@ -136,19 +140,19 @@ class AddressHelper {
|
||||
|
||||
$hausnummer = \ADBHausnummerModel::getFirst(["rimo_id" => $rimo_id]);
|
||||
|
||||
if($hausnummer) {
|
||||
/*if($hausnummer) {
|
||||
echo "found hausnummer from rimo_id $rimo_id\n";
|
||||
}
|
||||
}*/
|
||||
|
||||
if($adrcd && !$hausnummer) {
|
||||
// get Hausnummer to update
|
||||
$hausnummer = \ADBHausnummerModel::getFirst(['adrcd' => $adrcd]);
|
||||
if(!$hausnummer) {
|
||||
/*if(!$hausnummer) {
|
||||
//echo "Hausnummer adrcd $adrcd not found\n";
|
||||
} else {
|
||||
echo "found hausnummer from adrcd $adrcd\n";
|
||||
//echo "Hausnummer adrcd $adrcd gefunden!\n";
|
||||
}
|
||||
}*/
|
||||
}
|
||||
|
||||
if(!$hausnummer) {
|
||||
@@ -160,15 +164,23 @@ class AddressHelper {
|
||||
//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);
|
||||
echo "[EE] Konnte Strasse $strasse_name in Gemeinde $gemeinde_id nicht anlegen\n";
|
||||
if(!$strasse) return false;
|
||||
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) die("PLZ $plz_name nicht gefunden\n");
|
||||
if(!$plz) {
|
||||
echo "[EE] ($addr_dbg_str) PLZ $plz_name nicht gefunden\n";
|
||||
return false;
|
||||
}
|
||||
|
||||
$ortschaft = \ADBOrtschaftModel::getFirst(["gemeinde_id" => $gemeinde_id, "name" => $ort_name]);
|
||||
if(!$ortschaft) die("$strasse_hausnummer: ortschaft $ort_name nicht gefunden\n");
|
||||
if(!$ortschaft) {
|
||||
echo "[EE] ($addr_dbg_str) Ortschaft $ort_name nicht gefunden\n";
|
||||
return false;
|
||||
}
|
||||
|
||||
$hausnummer_data = [
|
||||
"netzgebiet_id" => $this->netzgebiet->id,
|
||||
|
||||
@@ -72,7 +72,7 @@ $qs = http_build_query($params);
|
||||
$req_url = $epGetClusters."?".$qs;
|
||||
$req_ctx = stream_context_create($ctxOptsGet);
|
||||
|
||||
echo $req_url."\n";
|
||||
//echo $req_url."\n";
|
||||
$responseText = file_get_contents($req_url, false, $req_ctx);
|
||||
if($responseText === false) {
|
||||
echo "Error fetching clusters\n";
|
||||
@@ -88,14 +88,21 @@ if(!is_object($clustersResponse) || !property_exists($clustersResponse, "item")
|
||||
|
||||
foreach($clustersResponse->item as $cluster) {
|
||||
$cluster_rimo_id = $cluster->id;
|
||||
echo "$cluster_rimo_id | name: ".$cluster->name."; label: ".$cluster->userLabel."\n";
|
||||
//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";
|
||||
//echo "Kein Netzgebiet für Salescluster $cluster_rimo_id (".$cluster->name.")\n";
|
||||
continue;
|
||||
}
|
||||
|
||||
|
||||
/*if($cluster_rimo_id != "SDISalesCluster_200193309697_1700559530") {
|
||||
// kalwang
|
||||
continue;
|
||||
}*/
|
||||
|
||||
$AddressHelper = new ADBAddressHelper\AddressHelper(["log" => $log, "db" => $adb, "netzgebiet" => $adb_netzgebiet]);
|
||||
|
||||
/*
|
||||
@@ -108,7 +115,7 @@ foreach($clustersResponse->item as $cluster) {
|
||||
$req_url = $epGetBuildings."?".$qs;
|
||||
$req_ctx = stream_context_create($ctxOptsGet);
|
||||
|
||||
echo $req_url."\n";
|
||||
//echo $req_url."\n";
|
||||
$responseText = file_get_contents($req_url, false, $req_ctx);
|
||||
|
||||
if($responseText === false) {
|
||||
@@ -117,7 +124,11 @@ foreach($clustersResponse->item as $cluster) {
|
||||
}
|
||||
|
||||
$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);
|
||||
@@ -126,6 +137,7 @@ foreach($clustersResponse->item as $cluster) {
|
||||
} else {
|
||||
continue;
|
||||
}
|
||||
$hausnummer_count++;
|
||||
// ignore buildings without units
|
||||
if(!$building->plannedTU) {
|
||||
continue;
|
||||
@@ -134,11 +146,12 @@ foreach($clustersResponse->item as $cluster) {
|
||||
//print_r($building);exit;
|
||||
|
||||
$rimo_building_id = $building->id;
|
||||
$hausnummer = $AddressHelper->findAddressFromRimoBuilding($building);
|
||||
$hausnummer = $AddressHelper->findUpdateAddressFromRimoBuilding($building);
|
||||
if(!$hausnummer) {
|
||||
echo "Adresse nicht gefunden: $rimo_building_id\n";
|
||||
continue;
|
||||
}
|
||||
$hausnummer_found_count++;
|
||||
|
||||
$rimo_home_count = count($building->homes->item);
|
||||
|
||||
@@ -153,6 +166,7 @@ foreach($clustersResponse->item as $cluster) {
|
||||
|
||||
foreach($building->homes->item as $home) {
|
||||
//print_r($home);//exit;
|
||||
$homes_count++;
|
||||
$home_rimo_id = $home->id;
|
||||
$home_name = $home->name;
|
||||
|
||||
@@ -173,14 +187,15 @@ foreach($clustersResponse->item as $cluster) {
|
||||
"extref" => $home_rimo_id,
|
||||
"num" => ++$last_unit_num
|
||||
]);
|
||||
echo "-- Creating new unit $home_rimo_id\n";
|
||||
if(!$unit->save()) {
|
||||
die("!!! Error saving new unit\n".print_r($home, true));
|
||||
die("Error saving new unit\n".print_r($home, true));
|
||||
}
|
||||
} else {
|
||||
if($unit->extref != $home_rimo_id) {
|
||||
$unit->extref = $home_rimo_id;
|
||||
$unit->save();
|
||||
}
|
||||
|
||||
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));
|
||||
}
|
||||
}
|
||||
|
||||
@@ -217,7 +232,7 @@ foreach($clustersResponse->item as $cluster) {
|
||||
}
|
||||
|
||||
// check OAID
|
||||
if(is_object($home->ftus->item[0]->oaidObject) && $home->ftus->item[0]->oaidObject->name) {
|
||||
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) {
|
||||
if(!$unit->oaid) {
|
||||
// assign oaid to home
|
||||
@@ -389,6 +404,7 @@ foreach($clustersResponse->item as $cluster) {
|
||||
}
|
||||
|
||||
}
|
||||
echo "Cluster $cluster->name: $hausnummer_count Buildings; $hausnummer_found_count Buildings verarbeitet; $homes_count Homes verarbeitet.\n";
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -20,14 +20,22 @@ $ignore_preorders = [];
|
||||
$campaign_prem_nord = 5;
|
||||
$campaign_prem_sued = 6;
|
||||
$campaign_gross_st_florian = 7;
|
||||
$same_unit_count = 0;
|
||||
$campaign_kalwang = 41;
|
||||
|
||||
$selected_campaign = $campaign_kalwang;
|
||||
|
||||
if(!$selected_campaign) {
|
||||
echo "Keine Kampagne ausgewählt.\n";
|
||||
exit;
|
||||
}
|
||||
|
||||
$same_unit_count = 0;
|
||||
$missing_units = [];
|
||||
$missing_doors = [];
|
||||
|
||||
$total = 0;
|
||||
$c = 0;
|
||||
foreach(PreorderModel::search(["deleted" => 0, "preordercampaign_id" => $campaign_prem_nord, "connection_count" => 2]) as $preorder) {
|
||||
foreach(PreorderModel::search(["deleted" => 0, "preordercampaign_id" => $selected_campaign, "connection_count" => 2]) as $preorder) {
|
||||
// check if we have enough units with extref
|
||||
$wohneinheiten = ADBWohneinheitModel::search(["hausnummer_id" => $preorder->adb_hausnummer_id]);
|
||||
$unit_count = count($wohneinheiten);
|
||||
|
||||
@@ -2,7 +2,7 @@
|
||||
<?php
|
||||
|
||||
//require 'vendor/autoload.php';
|
||||
require("../config/config.php");
|
||||
require("../../config/config.php");
|
||||
|
||||
define('FRONKDB_SQLDEBUG',false);
|
||||
error_reporting(E_ALL & ~(E_NOTICE | E_STRICT | E_DEPRECATED));
|
||||
@@ -18,10 +18,21 @@ define("INTERNAL_USER_USERNAME", $me->username);
|
||||
$ignore_preorders = [];
|
||||
|
||||
$campaign_prem_nord = 5;
|
||||
$campaign_prem_sued = 6;
|
||||
$campaign_gross_st_florian = 7;
|
||||
$campaign_kalwang = 41;
|
||||
|
||||
$selected_campaign = $campaign_kalwang;
|
||||
|
||||
if(!$selected_campaign) {
|
||||
echo "Keine Kampagne ausgewählt.\n";
|
||||
exit;
|
||||
}
|
||||
|
||||
$same_unit_count = 0;
|
||||
|
||||
$i = 0;
|
||||
foreach(PreorderModel::search(['preordercampaign_id' => $campaign_prem_nord, 'adb_wohneinheit_id' => null, 'connection_count' => 1, "connection_type" => "single-dwelling", "deleted" => 0]) as $preorder) {
|
||||
foreach(PreorderModel::search(['preordercampaign_id' => $selected_campaign, 'adb_wohneinheit_id' => null, 'connection_count' => 1, "connection_type" => "single-dwelling", "deleted" => 0]) as $preorder) {
|
||||
if(in_array($preorder->id, $ignore_preorders)) continue;
|
||||
//if($preorder->connection_type != "single-dwelling") continue;
|
||||
|
||||
@@ -73,6 +84,7 @@ foreach(PreorderModel::search(['preordercampaign_id' => $campaign_prem_nord, 'ad
|
||||
ksort($unit_candidates, SORT_NUMERIC);
|
||||
$new_unit = array_shift($unit_candidates);
|
||||
$preorder->adb_wohneinheit_id = $new_unit->id;
|
||||
//var_dump($preorder, $new_unit);exit;
|
||||
$preorder->save();
|
||||
|
||||
echo "$i Wohneinheit saved\n";
|
||||
|
||||
Reference in New Issue
Block a user