feat: clean up and optimize FCP filter and highlighting logic
This commit is contained in:
@@ -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
|
||||
);
|
||||
|
||||
@@ -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;
|
||||
|
||||
Reference in New Issue
Block a user