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
+27 -8
View File
@@ -4,8 +4,8 @@ class AddressdbApicontroller extends mfBaseApicontroller {
private $campaigns = [];
private $filter_salescluster_ids = [];
private $campaigns_by_scluster = [];
private $allowed_preordertypes = [];
private $district_is_city = false;
protected function init() {
$db = $this->db(ADDRESSDB_DBHOST, ADDRESSDB_DBUSER, ADDRESSDB_DBPASS, ADDRESSDB_DBNAME);
@@ -46,6 +46,10 @@ class AddressdbApicontroller extends mfBaseApicontroller {
$this->allowed_preordertypes[] = $type->type;
}
}
if($campaign->district_is_city == 1) {
$this->district_is_city = true;
}
}
foreach(PreordercampaignOriginhostnameModel::search(['preordercampaign_id' => $campaign->id]) as $origin) {
@@ -90,7 +94,11 @@ class AddressdbApicontroller extends mfBaseApicontroller {
$city_search['netzgebiet_id'] = $this->filter_salescluster_ids;
}
$results = ADBGemeindeModel::search($city_search);
if($this->district_is_city) {
$results = ADBOrtschaftModel::search($city_search);
} else {
$results = ADBGemeindeModel::search($city_search);
}
$cities = [];
@@ -214,7 +222,6 @@ class AddressdbApicontroller extends mfBaseApicontroller {
$search = trim($get['search']);
$street = trim($get['street']);
$city = trim($get['city']);
$district = trim($get['district']);
$zip = trim($get['zip']);
if(!$search && !$street && !$city && !$zip) {
@@ -227,10 +234,18 @@ class AddressdbApicontroller extends mfBaseApicontroller {
$where = "1=1";
$street_search = ["name%" => $street];
$street = $this->db()->escape($street);
$where .= " AND strasse like '$street%'";
if($city) {
$street_search['gemeinde%'] = $city;
$city = $this->db()->escape($city);
$where .= " AND gemeinde like '$city%'";
if($this->district_is_city) {
$street_search['ortschaft%'] = $city;
$city = $this->db()->escape($city);
$where .= " AND ortschaft like '$city%'";
} else {
$street_search['gemeinde%'] = $city;
$city = $this->db()->escape($city);
$where .= " AND gemeinde like '$city%'";
}
}
if($zip) {
$street_search['plz%'] = $zip;
@@ -293,7 +308,11 @@ class AddressdbApicontroller extends mfBaseApicontroller {
$where .= " AND ortschaft like '$search_district%'";
}
if($search_city && $search_city != "%") {
$where .= " AND gemeinde like '$search_city%'";
if($this->district_is_city) {
$where .= " AND ortschaft like '$search_city%'";
} else {
$where .= " AND gemeinde like '$search_city%'";
}
}
if($search_street && $search_street != "%") {
$where .= " AND strasse like '$search_street%'";
@@ -329,7 +348,7 @@ class AddressdbApicontroller extends mfBaseApicontroller {
$addresses[] = [
'zip' => $data->plz,
'city' => $data->gemeinde,
'city' => ($this->district_is_city) ? $data->ortschaft : $data->gemeinde,
'district' => $data->ortschaft,
'street' => $data->strasse,
'housenumber' => $data->hausnummer,