diff --git a/application/ADBWohneinheit/ADBWohneinheitModel.php b/application/ADBWohneinheit/ADBWohneinheitModel.php index 33c02fbbe..843df0028 100644 --- a/application/ADBWohneinheit/ADBWohneinheitModel.php +++ b/application/ADBWohneinheit/ADBWohneinheitModel.php @@ -417,42 +417,30 @@ class ADBWohneinheitModel { $db = FronkDB::singleton(ADDRESSDB_DBHOST, ADDRESSDB_DBUSER, ADDRESSDB_DBPASS, ADDRESSDB_DBNAME)->link; $where = self::getSqlFilter($filter); - $sql = "SELECT Wohneinheit.oaid, Hausnummer.netzgebiet_id as netzgebiet_id - FROM Wohneinheit - LEFT JOIN Hausnummer ON (Hausnummer.id = Wohneinheit.hausnummer_id) - WHERE $where AND Wohneinheit.rimo_deleted = 1 - ORDER BY Wohneinheit.oaid"; - - $res = $db->query($sql); - $rimoDeletedOaids = []; - - while($data = $res->fetch_assoc()) { - $rimoDeletedOaids[] = $data['oaid']; - $deletedHomes[$data['oaid']] = [ - "duplicateType" => "rimo_deleted", - 'oaid' => $data['oaid'] ?? 'Keine OAID', - 'count' => 1, // Always 1 since we're not counting duplicates - 'netzgebiet_id' => $data['netzgebiet_id'], - 'homeData' => [] - ]; - } - - if (!empty($rimoDeletedOaids)) { - $oaidList = "'" . implode("','", array_map([$db, 'real_escape_string'], $rimoDeletedOaids)) . "'"; $detailSql = "SELECT Wohneinheit.*, thetool.Address.company AS company, Hausnummer.rimo_id AS hausnummer_extref FROM Wohneinheit LEFT JOIN Hausnummer ON (Hausnummer.id = Wohneinheit.hausnummer_id) LEFT JOIN Netzgebiet ON (Netzgebiet.id = Hausnummer.netzgebiet_id) LEFT JOIN thetool.Network ON (Network.adb_netzgebiet_id = Netzgebiet.id) LEFT JOIN thetool.Address ON (Network.owner_id = Address.id) - WHERE $where AND Wohneinheit.oaid IN ($oaidList) AND Wohneinheit.rimo_deleted = 1 + WHERE $where AND Wohneinheit.rimo_deleted = 1 ORDER BY Wohneinheit.oaid"; + $counter = 0; $detailRes = $db->query($detailSql); while($homeData = $detailRes->fetch_assoc()) { - $deletedHomes[$homeData['oaid']]['homeData'][] = [ + $counter++; + $deletedHomes[$counter] = [ + "duplicateType" => "rimo_deleted", + 'oaid' => $homeData['oaid'] ?? 'Keine OAID', + 'extref' => $homeData['extref'], + 'netzgebiet_id' => $homeData['netzgebiet_id'], + 'count' => 1, // Each entry is unique in this context + 'homeData' => [] + ]; + $deletedHomes[$counter]['homeData'][] = [ "id" => $homeData['id'], - 'oaid' => $homeData['oaid'], + 'oaid' => $homeData['oaid'] ?? 'Keine OAID', "extref" => $homeData['extref'], "network_company" => $homeData['company'], "hausnummer_id" => $homeData['hausnummer_id'], @@ -465,9 +453,7 @@ class ADBWohneinheitModel { "edit" => $homeData['edit'], ]; } - } - - return array_values($deletedHomes); - } + return array_values($deletedHomes); + } }