feat: clean up and optimize FCP filter and highlighting logic

This commit is contained in:
2026-02-27 12:36:01 +01:00
parent ad8c6eaeca
commit be9e6ae4e5
3 changed files with 7 additions and 8 deletions

View File

@@ -1452,11 +1452,11 @@ class PreorderController extends mfBaseController {
if (empty($fcps)) return [];
$filter = $this->request->filter ?? [];
// We want to count preorders matching ALL other filters, but ignoring the current FCP filter
if (isset($filter['fcp'])) {
unset($filter['fcp']);
}
$filter = $this->getPreparedFilter($filter);
$statsMap = PreorderModel::countActiveGroupedByFcp($filter);
$result = array_map(
@@ -1466,7 +1466,7 @@ class PreorderController extends mfBaseController {
"text" => $fcp->name ?? null,
'lat' => $fcp->gps_lat ?? null,
'lng' => $fcp->gps_long ?? null,
'preorder_count' => $statsMap[$fcp->id] ?? 0
'preorder_count' => $statsMap[$fcp->name] ?? 0
],
$fcps
);

View File

@@ -498,19 +498,20 @@ class PreorderModel
$db = FronkDB::singleton();
$where = self::getSqlFilter($filter);
$sql = "SELECT adb_hausnummer.fcp_id, COUNT(*) as cnt FROM `" . FRONKDB_DBNAME . "`.Preorder tt_preorder
$sql = "SELECT hn.rimo_fcp_name, COUNT(*) as cnt FROM `" . FRONKDB_DBNAME . "`.Preorder tt_preorder
LEFT JOIN `" . FRONKDB_DBNAME . "`.Preorderstatus tt_preorderstatus ON (tt_preorder.status_id = tt_preorderstatus.id)
LEFT JOIN `" . ADDRESSDB_DBNAME . "`.view_hausnummer as adb_hausnummer ON (tt_preorder.adb_hausnummer_id = adb_hausnummer.hausnummer_id)
LEFT JOIN `" . ADDRESSDB_DBNAME . "`.Hausnummer as hn ON (adb_hausnummer.hausnummer_id = hn.id)
LEFT JOIN `" . ADDRESSDB_DBNAME . "`.Wohneinheit as adb_wohneinheit ON (tt_preorder.adb_wohneinheit_id = adb_wohneinheit.id)
WHERE $where AND adb_hausnummer.fcp_id IS NOT NULL
GROUP BY adb_hausnummer.fcp_id
WHERE $where AND hn.rimo_fcp_name IS NOT NULL
GROUP BY hn.rimo_fcp_name
";
$res = $db->query($sql);
$counts = [];
if ($db->num_rows($res)) {
while ($row = $db->fetch_object($res)) {
$counts[$row->fcp_id] = (int)$row->cnt;
$counts[$row->rimo_fcp_name] = (int)$row->cnt;
}
}
return $counts;