Merge branch 'PreorderRimoTypeMap/hide-private-adb' into 'master'

Enhance visibility condition for faulty Hausnummer IDs in PreorderModel

See merge request fronk/thetool!1887
This commit is contained in:
Luca Haid
2025-11-16 19:31:35 +00:00

View File

@@ -1423,6 +1423,23 @@ ORDER BY
// add time debug
$startTime = microtime(true);
$campaign = PreordercampaignModel::getFirst(['id' => $safeCampaignId]);
$faultyHausnummerIds = [];
if ($campaign && !empty($campaign->rimo_type_map_faults)) {
$faults = json_decode($campaign->rimo_type_map_faults, true);
foreach ($faults as $fault) {
if (empty($fault['done'])) {
$faultyHausnummerIds[] = (int)$fault['hausnummer_id'];
}
}
}
$visibilityCondition = "AND (h.visibility IS NULL OR h.visibility != 'private')";
if (!empty($faultyHausnummerIds)) {
$ids = implode(',', $faultyHausnummerIds);
$visibilityCondition = "AND ((h.visibility IS NULL OR h.visibility != 'private') OR h.id IN ({$ids}))";
}
$sql = "
SELECT
h.id AS hausnummer_id, h.gps_lat, h.gps_long, h.rimo_type, h.rimo_op_state, h.rimo_ex_state, h.hausnummer,
@@ -1444,6 +1461,7 @@ ORDER BY
JOIN `{$fronkDbName}`.`Network` n ON pc.network_id = n.id
WHERE pc.id = {$safeCampaignId}
) AND h.gps_lat IS NOT NULL AND h.gps_long IS NOT NULL
{$visibilityCondition}
GROUP BY h.id
ORDER BY h.id
";