111 lines
3.7 KiB
PHP
111 lines
3.7 KiB
PHP
<?php
|
|
|
|
class AddressDB {
|
|
private $log;
|
|
private $db;
|
|
|
|
public $data;
|
|
|
|
public function __contruct() {
|
|
|
|
}
|
|
|
|
public function findAddress($search) {
|
|
if(!is_array($search)) {
|
|
return false;
|
|
}
|
|
|
|
$gemeinde_name = $search['gemeinde_name'];
|
|
$ort_name = $search['ort_name'];
|
|
$plz = $search['plz'];
|
|
$strasse_name = $search['strasse_name'];
|
|
$hausnummer = $search['hausnummer'];
|
|
$block = $search['block'];
|
|
$stiege = $search['stiege'];
|
|
$stock = $search['stock'];
|
|
$tuer = $search['tuee'];
|
|
|
|
/*
|
|
if($gemeinde_id < 1 || $strasse_id < 1 || !$hausnummer
|
|
|| $gemeinde_id > pow(2, 30) || $strasse_id > pow(2, 30) || strlen($hausnummer) > 32) {
|
|
$this->redirect('Check','',['status' => 'error']);
|
|
}*/
|
|
|
|
$hausnummerMatch = true;
|
|
|
|
$gemeinde = new Gemeinde($gemeinde_id);
|
|
$strasse = new Strasse($strasse_id);
|
|
|
|
// try exact hausnummer
|
|
$res = $this->db()->select("view_adresseProvider", "*", "gemeinde = '".$gemeinde->name."' AND strasse = '".$strasse->name."' AND hausnummer = '$hausnummer'");
|
|
if(!$this->db()->num_rows($res)) {
|
|
$hausnummerMatch = false;
|
|
// check for anschlüsse in the same street
|
|
$res = $this->db()->select("view_adresseProvider", "*", "gemeinde = '".$gemeinde->name."' AND strasse = '".$strasse->name."'");
|
|
if(!$this->db()->num_rows($res)) {
|
|
// XXX: if breitband stmk
|
|
$this->layout()->setTemplate("Check/Result/Fail");
|
|
|
|
// xdsl anzeigen
|
|
return $this->checkVull($request);
|
|
}
|
|
}
|
|
|
|
// if multiple hausnummern, anschluss in street available, or multiple providers
|
|
if($this->db()->num_rows($res)) {
|
|
$addresses = [];
|
|
$providers = [];
|
|
$homeProvider = false;
|
|
$multipleAddress = false;
|
|
|
|
while($data = $this->db()->fetch_object($res)) {
|
|
$addresses[] = new Hausnummer($data->id);
|
|
if($data->provider_id == HOME_PROVIDER_ID) {
|
|
$homeProvider = true;
|
|
}
|
|
if(!in_array($data->provider, $providers)) {
|
|
$providers[$data->provider_id] = $data->provider;
|
|
}
|
|
if($data->hausnummer != $hausnummer) {
|
|
$multipleAddress = true;
|
|
}
|
|
}
|
|
|
|
$pc = new ProductController();
|
|
|
|
if($homeProvider && $multipleAddress) {
|
|
$this->layout()->set("debug", "multi hausnummern, homeprovider");
|
|
$this->layout()->setTemplate("Check/Result/Street");
|
|
return true;
|
|
}
|
|
if($homeProvider) {
|
|
$this->layout()->set("debug", "single hausnummer, homeprovider");
|
|
$this->layout()->setTemplate("Check/Result/Success");
|
|
$this->layout()->set("productsPrivate", $pc->getProducts(1, "fiber", "privat"));
|
|
$this->layout()->set("productsBusiness", $pc->getProducts(1, "fiber", "business"));
|
|
if($data->status == 1) {
|
|
$this->layout()->set("debug", "single hausnummer, homeprovider, rohr am grundstück");
|
|
$this->layout()->setTemplate("Check/Result/Street");
|
|
}
|
|
return true;
|
|
}
|
|
if(!$homeProvider) {
|
|
$this->layout()->set("providers", $providers);
|
|
$this->layout()->set("debug", "single hausnummer, partner provider");
|
|
$this->layout()->setTemplate("Check/Result/SuccessPartner");
|
|
return true;
|
|
}
|
|
|
|
return true;
|
|
} /*elseif($this->db()->num_rows($res) == 1 && $hausnummerMatch) {
|
|
// exactly 1 match
|
|
$data = $this->db()->fetch_object($res);
|
|
$address = new Hausnummer($data->id);
|
|
$this->layout()->set("adresse", $address);
|
|
$this->layout()->set("debug", "single address, only homeprovider");
|
|
$this->layout()->setTemplate("Check/Result/Success");
|
|
return true;
|
|
}*/
|
|
|
|
}
|
|
} |