From 84e27dc2699f2abbb0437b435623f8af335dc14c Mon Sep 17 00:00:00 2001 From: Frank Schubert Date: Fri, 14 Jul 2023 14:17:16 +0200 Subject: [PATCH] added rimo_id and unit_count to ADBNetzgebietModel --- .../ADBNetzgebiet/ADBNetzgebietModel.php | 9 ++ scripts/rimo-import-test.php | 123 ++++++++++++++++++ 2 files changed, 132 insertions(+) create mode 100755 scripts/rimo-import-test.php diff --git a/application/ADBNetzgebiet/ADBNetzgebietModel.php b/application/ADBNetzgebiet/ADBNetzgebietModel.php index f00a9935b..a0449dc4f 100644 --- a/application/ADBNetzgebiet/ADBNetzgebietModel.php +++ b/application/ADBNetzgebiet/ADBNetzgebietModel.php @@ -5,7 +5,9 @@ class ADBNetzgebietModel { public $extref; public $source; public $source_id; + public $rimo_id; public $freigabe; + public $unit_count; public $create = null; public $edit = null; @@ -145,6 +147,13 @@ class ADBNetzgebietModel { } } + if(array_key_exists("rimo_id", $filter)) { + $rimo_id = FronkDB::singleton()->escape($filter['rimo_id']); + if($rimo_id) { + $where .= " AND Netzgebiet.`rimo_id` LIKE '%$rimo_id%'"; + } + } + //var_dump($filter, $where);exit; return $where; } diff --git a/scripts/rimo-import-test.php b/scripts/rimo-import-test.php new file mode 100755 index 000000000..a52bd0c0f --- /dev/null +++ b/scripts/rimo-import-test.php @@ -0,0 +1,123 @@ +#!/usr/bin/php +id); +define("INTERNAL_USER_USERNAME", $me->username); + +$mainlog = mfLoghandler::singleton(); +$log = new mfLog_File(); +$log->init(BASEDIR."/var/log/rimo-import.log"); + +$apiUrl = RIMO_API_JSON_URL_PROD; +$apiToken = RIMO_API_JSON_APIKEY_PROD; + +$epGetClusters = $apiUrl.RIMO_API_JSON_EP_GET_CLUSTERS; +$epGetBuildings = $apiUrl.RIMO_API_JSON_EP_GET_BUILDINGS; + + +if(!defined("RIMO_API_JSON_APIKEY_PROD")) { + die("rimo api token not defined!"); +} + +$import_count = 0; + +$baseParams = ['apiKey' => RIMO_API_JSON_APIKEY_PROD]; + +$ctxOptsPost = [ + 'http' => [ + 'method' => 'POST', + 'header' => 'accept: application/json' + ] +]; + +$ctxOptsGet = [ + 'http' => [ + 'method' => 'GET', + 'header' => 'accept: application/json' + ] +]; + +/* + * 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; +} + +$clustersResponse = json_decode($responseText); +//var_dump($clustersResponse); +if(is_object($clustersResponse) && property_exists($clustersResponse, "item") && is_array($clustersResponse->item) && count($clustersResponse->item)) { + + foreach($clustersResponse->item as $cluster) { + $cluster_rimo_id = $cluster->id; + $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; + } + + /* + * 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); + + 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") { + //var_dump($building); + } else { + 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; + foreach($building->homes->item as $home) { + + //vaR_dump($home->ftus->item); + } + exit; + } + } + } + } + +} +//echo $response; +echo "\n"; \ No newline at end of file