Can now add to AddressDB via Preorder/Form
This commit is contained in:
@@ -28,12 +28,24 @@ class AddressDBController extends mfBaseController {
|
||||
case "getFilteredBuildings":
|
||||
$return = $this->getFilteredBuildingsApi();
|
||||
break;
|
||||
case "getAddressByHousenumber":
|
||||
$return = $this->getAddressByHousenumberApi();
|
||||
break;
|
||||
case "getUnits":
|
||||
$return = $this->getUnitsApi();
|
||||
break;
|
||||
case "findStreets":
|
||||
$return = $this->findStreetsApi();
|
||||
break;
|
||||
case "findDistricts":
|
||||
$return = $this->findDistrictsApi();
|
||||
break;
|
||||
case "findCities":
|
||||
$return = $this->findCitiesApi();
|
||||
break;
|
||||
case "findZips":
|
||||
$return = $this->findZipsApi();
|
||||
break;
|
||||
case 'findBuildings':
|
||||
$return = $this->findBuildingsApi();
|
||||
break;
|
||||
@@ -189,15 +201,109 @@ class AddressDBController extends mfBaseController {
|
||||
return ['units' => $results];
|
||||
}
|
||||
|
||||
private function findCitiesApi() {
|
||||
$cities = [];
|
||||
$search = $this->request->search;
|
||||
private function getAddressByHousenumberApi() {
|
||||
$zips = [];
|
||||
$hausnummer_id = trim($this->request->hausnummer_id);
|
||||
|
||||
$ort_ids = [];
|
||||
if(!is_numeric($hausnummer_id) || $hausnummer_id < 1) {
|
||||
return false;
|
||||
}
|
||||
|
||||
$hausnummer = new ADBHausnummer($hausnummer_id);
|
||||
|
||||
$result = [
|
||||
'hausnummer_id' => $hausnummer->id,
|
||||
'strasse' => $hausnummer->strasse->name,
|
||||
'hausnummer' => $hausnummer->hausnummer,
|
||||
'plz' => $hausnummer->plz->plz,
|
||||
'ort' => $hausnummer->strasse->gemeinde->name,
|
||||
'ortschaft' => $hausnummer->ortschaft->name
|
||||
];
|
||||
|
||||
return $result;
|
||||
}
|
||||
|
||||
private function findStreetsApi() {
|
||||
$streets = [];
|
||||
$search = trim($this->request->q);
|
||||
|
||||
foreach(ADBStrasseModel::search(['name%' => $search]) as $street) {
|
||||
if(!in_array($street->name, $streets)) {
|
||||
$streets[] = $street->name;
|
||||
}
|
||||
}
|
||||
|
||||
$this->returnJson($streets);
|
||||
}
|
||||
|
||||
private function findZipsApi() {
|
||||
$zips = [];
|
||||
$search = trim($this->request->q);
|
||||
$campaign_id = trim($this->request->campaign_id);
|
||||
|
||||
$plz_search = [];
|
||||
|
||||
if($campaign_id) {
|
||||
$campaign = new Preordercampaign($campaign_id);
|
||||
if(!$campaign->id) {
|
||||
header("Content-Type: application/json");
|
||||
echo json_encode(["results" => []]);
|
||||
exit;
|
||||
}
|
||||
|
||||
$scluster_ids = [];
|
||||
foreach($campaign->salesclusters as $scluster) {
|
||||
$scluster_ids[] = $scluster->id;
|
||||
}
|
||||
$plz_search['netzgebiet_id'] = $scluster_ids;
|
||||
}
|
||||
|
||||
$plz_search['plzstring%'] = $search;
|
||||
|
||||
|
||||
foreach(ADBPlzModel::search($plz_search) as $zip) {
|
||||
if(!in_array($zip->plz, $zips)) {
|
||||
$zips[] = $zip->plz;
|
||||
}
|
||||
}
|
||||
|
||||
$this->returnJson($zips);
|
||||
}
|
||||
|
||||
private function findDistrictsApi() {
|
||||
$districts = [];
|
||||
$search = trim($this->request->q);
|
||||
$autocomplete = $this->request->autocomplete;
|
||||
$campaign_id = trim($this->request->campaign_id);
|
||||
|
||||
$district_search = [];
|
||||
|
||||
if($campaign_id) {
|
||||
$campaign = new Preordercampaign($campaign_id);
|
||||
if(!$campaign->id) {
|
||||
header("Content-Type: application/json");
|
||||
echo json_encode(["results" => []]);
|
||||
exit;
|
||||
}
|
||||
|
||||
$scluster_ids = [];
|
||||
foreach($campaign->salesclusters as $scluster) {
|
||||
$scluster_ids[] = $scluster->id;
|
||||
}
|
||||
$district_search['netzgebiet_id'] = $scluster_ids;
|
||||
}
|
||||
|
||||
$district_search['name%'] = "%".$search;
|
||||
|
||||
foreach(ADBOrtschaftModel::search($district_search) as $district) {
|
||||
if(!in_array($district->name, $districts)) {
|
||||
$districts[] = $district->name;
|
||||
}
|
||||
}
|
||||
/*
|
||||
if(is_numeric($search)) {
|
||||
$adb = FronkDB::singleton(ADDRESSDB_DBHOST, ADDRESSDB_DBUSER, ADDRESSDB_DBPASS, ADDRESSDB_DBNAME);
|
||||
$sql = "SELECT ortschaft_id from view_wohneinheit WHERE plz like '%$search%' GROUP BY ortschaft_id";
|
||||
$sql = "SELECT ortschaft_id from view_wohneinheit WHERE ortschaft like '%$search%' GROUP BY ortschaft_id";
|
||||
$res = $adb->query($sql);
|
||||
|
||||
if($adb->num_rows($res)) {
|
||||
@@ -215,9 +321,18 @@ class AddressDBController extends mfBaseController {
|
||||
$results = ADBOrtschaftModel::search(['name%' => $search]);
|
||||
}
|
||||
|
||||
if($autocomplete) {
|
||||
foreach($results as $city) {
|
||||
if(!in_array($city->name, $cities)) {
|
||||
$cities[] = $city->name;
|
||||
}
|
||||
}
|
||||
$this->returnJson($cities);
|
||||
}
|
||||
|
||||
foreach($results as $city) {
|
||||
$gemeinde = new ADBGemeinde($city->gemeinde_id);
|
||||
|
||||
|
||||
$data = [];
|
||||
$data['id'] = $city->id;
|
||||
$data['gemeinde_id'] = $city->gemeinde_id;
|
||||
@@ -226,8 +341,43 @@ class AddressDBController extends mfBaseController {
|
||||
$data['name'] = $city->name;
|
||||
$cities[] = $data;
|
||||
}
|
||||
*/
|
||||
$this->returnJson($districts);
|
||||
//return ['cities' => $cities];
|
||||
}
|
||||
|
||||
private function findCitiesApi() {
|
||||
$cities = [];
|
||||
$search = $this->request->q;
|
||||
//$autocomplete = $this->request->autocomplete;
|
||||
$campaign_id = trim($this->request->campaign_id);
|
||||
|
||||
$city_search = [];
|
||||
|
||||
if($campaign_id) {
|
||||
$campaign = new Preordercampaign($campaign_id);
|
||||
if(!$campaign->id) {
|
||||
header("Content-Type: application/json");
|
||||
echo json_encode(["results" => []]);
|
||||
exit;
|
||||
}
|
||||
|
||||
$scluster_ids = [];
|
||||
foreach($campaign->salesclusters as $scluster) {
|
||||
$scluster_ids[] = $scluster->id;
|
||||
}
|
||||
$city_search['netzgebiet_id'] = $scluster_ids;
|
||||
}
|
||||
|
||||
$city_search['name%'] = "%".$search;
|
||||
|
||||
foreach(ADBGemeindeModel::search($city_search) as $city) {
|
||||
if(!in_array($city->name, $cities)) {
|
||||
$cities[] = $city->name;
|
||||
}
|
||||
}
|
||||
$this->returnJson($cities);
|
||||
|
||||
return ['cities' => $cities];
|
||||
}
|
||||
|
||||
private function getFilteredBuildingsApi() {
|
||||
|
||||
Reference in New Issue
Block a user