Preordercampaigns can use city or district as city

This commit is contained in:
Frank Schubert
2022-11-18 16:31:06 +01:00
parent 623362fb8c
commit d2853f7bea
6 changed files with 98 additions and 16 deletions

View File

@@ -93,10 +93,13 @@ class ADBOrtschaftModel {
$where = self::getSqlFilter($filter);
$sql = "SELECT Ortschaft.* FROM Ortschaft
LEFT JOIN Gemeinde ON (Ortschaft.gemeinde_id = Gemeinde.id)
LEFT JOIN Plz ON (Plz.gemeinde_id = Gemeinde.id)
LEFT JOIN GemeindeNetzgebiet ON (GemeindeNetzgebiet.gemeinde_id = Gemeinde.id)
LEFT JOIN Netzgebiet ON (GemeindeNetzgebiet.netzgebiet_id = Netzgebiet.id)
WHERE $where
ORDER BY gemeinde_id,Ortschaft.name,Ortschaft.kennziffer";
//mfLoghandler::singleton()->debug($sql);
mfLoghandler::singleton()->debug($sql);
if(is_array($limit) && count($limit)) {
if(is_numeric($limit['start']) && is_numeric($limit['count'])) {
$sql .= " LIMIT ".$limit['start'].", ".$limit['count'];
@@ -117,6 +120,15 @@ class ADBOrtschaftModel {
private static function getSqlFilter($filter) {
$where = "1=1 ";
if(array_key_exists("netzgebiet_id", $filter)) {
$netzgebiet_id = $filter['netzgebiet_id'];
if(is_numeric($netzgebiet_id)) {
$where .= " AND Netzgebiet.id=$netzgebiet_id";
} elseif(is_array($netzgebiet_id) && count($netzgebiet_id)) {
$where .= " AND Netzgebiet.id IN (". implode(",", $netzgebiet_id).")";
}
}
if(array_key_exists("gemeinde_id", $filter)) {
$gemeinde_id = $filter['gemeinde_id'];
if(is_numeric($gemeinde_id)) {
@@ -154,6 +166,20 @@ class ADBOrtschaftModel {
}
}
if(array_key_exists("plz", $filter)) {
$plz = FronkDB::singleton()->escape($filter['plz']);
if($plz) {
$where .= " AND Plz.plzstring = '$plz'";
}
}
if(array_key_exists("plz%", $filter)) {
$plz = FronkDB::singleton()->escape($filter['plz%']);
if($plz) {
$where .= " AND Plz.plzstring like '$plz%'";
}
}
//var_dump($filter, $where);exit;
return $where;
}