From 678deb2cb3e1c6c18fb6bd5efa279c8cb48e6c09 Mon Sep 17 00:00:00 2001 From: Frank Schubert Date: Thu, 31 Jul 2025 14:11:21 +0200 Subject: [PATCH] Added hausnummer status to preorder address reporting api --- application/ADBStatus/ADBStatusModel.php | 9 +++++++-- application/Api/v1/AddressdbApicontroller.php | 20 +++++++++++++++++++ 2 files changed, 27 insertions(+), 2 deletions(-) diff --git a/application/ADBStatus/ADBStatusModel.php b/application/ADBStatus/ADBStatusModel.php index 9a5bb3159..5e05ded65 100644 --- a/application/ADBStatus/ADBStatusModel.php +++ b/application/ADBStatus/ADBStatusModel.php @@ -36,7 +36,7 @@ class ADBStatusModel { } - public static function getAll() { + public static function getAll($withIdAsKey = false) { $items = []; $db = FronkDB::singleton(ADDRESSDB_DBHOST, ADDRESSDB_DBUSER, ADDRESSDB_DBPASS, ADDRESSDB_DBNAME); @@ -44,7 +44,12 @@ class ADBStatusModel { $res = $db->select("Status", "*", "1=1 ORDER BY code, name"); if($db->num_rows($res)) { while($data = $db->fetch_object($res)) { - $items[] = new ADBStatus($data); + if($withIdAsKey) { + $items[$data->id] = new ADBStatus($data); + } else { + $items[] = new ADBStatus($data); + } + } } return $items; diff --git a/application/Api/v1/AddressdbApicontroller.php b/application/Api/v1/AddressdbApicontroller.php index 69739a7dc..0936f9b5b 100644 --- a/application/Api/v1/AddressdbApicontroller.php +++ b/application/Api/v1/AddressdbApicontroller.php @@ -673,6 +673,8 @@ class AddressdbApicontroller extends mfBaseApicontroller { $addresses = []; $netzgebiete = ADBNetzgebietModel::getAll(true); + $stati = ADBStatusModel::getAll(true); + $where = "1=1"; if($search_zip && $search_zip != "%") { @@ -763,6 +765,7 @@ class AddressdbApicontroller extends mfBaseApicontroller { $tmp_addresses[$address_key] = [ 'oaid' => $data->hausnummer_oaid, 'cluster_id' => $data->netzgebiet_extref, + 'status' => [], 'rimo_external_id' => null, 'visibility' => null, 'adrcd' => null, @@ -793,15 +796,32 @@ class AddressdbApicontroller extends mfBaseApicontroller { unset($tmp_addresses[$address_key]['municipality']); } if($this->me->is("preorderaddressreporting")) { + $sflags = []; + foreach(ADBStatusflagModel::getAll() as $sflag) { + $sflag->hausnummer_id = $data->hausnummer_id; + $sflags[] = [ + "code" => (int)$sflag->code, + "text" => $sflag->name, + "value" => ($sflag->value->value) ? true : false, + ]; + } + $status = [ + "code" => $stati[$data->status_id]->code, + "text" => $stati[$data->status_id]->name, + "flags" => $sflags, + ]; + $tmp_addresses[$address_key]['status'] = $status; $tmp_addresses[$address_key]['rimo_external_id'] = $data->hausnummer_rimo_id; $tmp_addresses[$address_key]['visibility'] = $data->visibility; $tmp_addresses[$address_key]['adrcd'] = $data->adrcd; $tmp_addresses[$address_key]['subcd'] = $data->subcd; } else { + unset($tmp_addresses[$address_key]["status"]); unset($tmp_addresses[$address_key]['rimo_external_id']); unset($tmp_addresses[$address_key]["visibility"]); unset($tmp_addresses[$address_key]["adrcd"]); unset($tmp_addresses[$address_key]["subcd"]); + } }