Aded AdressDB Home Export
This commit is contained in:
@@ -155,7 +155,8 @@
|
|||||||
<div class="col">
|
<div class="col">
|
||||||
<button type="submit" class="btn btn-primary">Filter anwenden</button>
|
<button type="submit" class="btn btn-primary">Filter anwenden</button>
|
||||||
<a class="btn btn-secondary" href="<?=self::getUrl("AddressDB", "", ["resetFilter" => 1])?>">Filter zurücksetzen</a>
|
<a class="btn btn-secondary" href="<?=self::getUrl("AddressDB", "", ["resetFilter" => 1])?>">Filter zurücksetzen</a>
|
||||||
<button type="submit" formaction="<?=self::getUrl("AddressDB", "export")?>" id="export-button" class="btn btn-outline-success ml-2"><i class="fas fa-download"></i> CSV-Export</button>
|
<button type="submit" formaction="<?=self::getUrl("AddressDB", "export")?>" id="export-button" class="btn btn-outline-success ml-2"><i class="fas fa-download"></i> CSV-Export Gebäude</button>
|
||||||
|
<button type="submit" formaction="<?=self::getUrl("AddressDB", "exportHomes")?>" id="export-button-homes" class="btn btn-outline-success ml-2"><i class="fas fa-download"></i> CSV-Export Homes</button>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</form>
|
</form>
|
||||||
|
|||||||
@@ -3,6 +3,7 @@
|
|||||||
class ADBStatusflag extends mfBaseModel {
|
class ADBStatusflag extends mfBaseModel {
|
||||||
private $value;
|
private $value;
|
||||||
public $hausnummer_id;
|
public $hausnummer_id;
|
||||||
|
public $wohneinheit_id;
|
||||||
|
|
||||||
|
|
||||||
public function init() {
|
public function init() {
|
||||||
@@ -14,7 +15,9 @@ class ADBStatusflag extends mfBaseModel {
|
|||||||
if($this->$name == null) {
|
if($this->$name == null) {
|
||||||
|
|
||||||
if($name == "value") {
|
if($name == "value") {
|
||||||
if(!$this->hausnummer_id) return null;
|
if(!$this->hausnummer_id && !$this->wohneinheit_id) return null;
|
||||||
|
|
||||||
|
if($this->hausnummer_id) {
|
||||||
$value = ADBHausnummerStatusflagValueModel::getFirst(["hausnummer_id" => $this->hausnummer_id, "flag_id" => $this->id]);
|
$value = ADBHausnummerStatusflagValueModel::getFirst(["hausnummer_id" => $this->hausnummer_id, "flag_id" => $this->id]);
|
||||||
if(!$value) {
|
if(!$value) {
|
||||||
$value = ADBHausnummerStatusflagValueModel::create([
|
$value = ADBHausnummerStatusflagValueModel::create([
|
||||||
@@ -22,6 +25,16 @@ class ADBStatusflag extends mfBaseModel {
|
|||||||
"flag_id" => $this->id
|
"flag_id" => $this->id
|
||||||
]);
|
]);
|
||||||
}
|
}
|
||||||
|
} elseif($this->wohneinheit_id) {
|
||||||
|
$value = ADBWohneinheitStatusflagValueModel::getFirst(["wohneinheit_id" => $this->wohneinheit_id, "flag_id" => $this->id]);
|
||||||
|
if(!$value) {
|
||||||
|
$value = ADBWohneinheitStatusflagValueModel::create([
|
||||||
|
"wohneinheit_id" => $this->wohneinheit_id,
|
||||||
|
"flag_id" => $this->id
|
||||||
|
]);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
$this->value = $value;
|
$this->value = $value;
|
||||||
return $this->value;
|
return $this->value;
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -6,6 +6,7 @@ class ADBWohneinheit extends mfBaseModel {
|
|||||||
private $rimo_workorders;
|
private $rimo_workorders;
|
||||||
private $ftu_data;
|
private $ftu_data;
|
||||||
private $status;
|
private $status;
|
||||||
|
private $statusflags; // TODO
|
||||||
|
|
||||||
protected function init() {
|
protected function init() {
|
||||||
$this->db = FronkDB::singleton(ADDRESSDB_DBHOST, ADDRESSDB_DBUSER, ADDRESSDB_DBPASS, ADDRESSDB_DBNAME);
|
$this->db = FronkDB::singleton(ADDRESSDB_DBHOST, ADDRESSDB_DBUSER, ADDRESSDB_DBPASS, ADDRESSDB_DBNAME);
|
||||||
@@ -276,6 +277,18 @@ class ADBWohneinheit extends mfBaseModel {
|
|||||||
return $this->status;
|
return $this->status;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if($name == "statusflags") {
|
||||||
|
$flags = [];
|
||||||
|
foreach(ADBStatusflagModel::getAll() as $flag) {
|
||||||
|
$flag->wohneinheit_id = $this->id;
|
||||||
|
$flags[$flag->id] = $flag;
|
||||||
|
}
|
||||||
|
if(count($flags)) {
|
||||||
|
$this->statusflags = $flags;
|
||||||
|
}
|
||||||
|
return $this->statusflags;
|
||||||
|
}
|
||||||
|
|
||||||
$classname = ucfirst($name);
|
$classname = ucfirst($name);
|
||||||
$idfield = $name."_id";
|
$idfield = $name."_id";
|
||||||
$this->$name = new $classname($this->$idfield);
|
$this->$name = new $classname($this->$idfield);
|
||||||
|
|||||||
@@ -407,6 +407,13 @@ class AddressDBController extends mfBaseController {
|
|||||||
}
|
}
|
||||||
|
|
||||||
protected function exportAction() {
|
protected function exportAction() {
|
||||||
|
return $this->export();
|
||||||
|
}
|
||||||
|
|
||||||
|
protected function exportHomesAction() {
|
||||||
|
return $this->export(true);
|
||||||
|
}
|
||||||
|
private function export($export_homes = false) {
|
||||||
$rfilter = $this->request->filter;
|
$rfilter = $this->request->filter;
|
||||||
if(!is_array($rfilter)) {
|
if(!is_array($rfilter)) {
|
||||||
$rfilter = [];
|
$rfilter = [];
|
||||||
@@ -449,7 +456,12 @@ class AddressDBController extends mfBaseController {
|
|||||||
// Fixes lousy performance and horrendous memory usage
|
// Fixes lousy performance and horrendous memory usage
|
||||||
$res = ADBHausnummerModel::search($addressdb_filter, [], true);
|
$res = ADBHausnummerModel::search($addressdb_filter, [], true);
|
||||||
|
|
||||||
|
if($export_homes) {
|
||||||
|
$this->layout()->setTemplate("AddressDB/export_homes.csv");
|
||||||
|
} else {
|
||||||
$this->layout()->setTemplate("AddressDB/export.csv");
|
$this->layout()->setTemplate("AddressDB/export.csv");
|
||||||
|
}
|
||||||
|
|
||||||
$this->layout()->set("res", $res);
|
$this->layout()->set("res", $res);
|
||||||
|
|
||||||
//var_dump($filter, $hausnummern);exit;
|
//var_dump($filter, $hausnummern);exit;
|
||||||
@@ -782,8 +794,12 @@ class AddressDBController extends mfBaseController {
|
|||||||
private function findAddressApi() {
|
private function findAddressApi() {
|
||||||
$addresses = [];
|
$addresses = [];
|
||||||
$search = trim($this->request->q);
|
$search = trim($this->request->q);
|
||||||
$campagin_id = ($this->request->campaign_id);
|
$campagin_id = $this->request->campaign_id;
|
||||||
|
$include_gst = $this->request->include_gst ? $this->request->include_gst : false;
|
||||||
|
|
||||||
|
$scluster_ids = [];
|
||||||
|
|
||||||
|
if($campagin_id) {
|
||||||
$campaign = new Preordercampaign($campagin_id);
|
$campaign = new Preordercampaign($campagin_id);
|
||||||
if(!$campaign->id) {
|
if(!$campaign->id) {
|
||||||
header("Content-Type: application/json");
|
header("Content-Type: application/json");
|
||||||
@@ -791,16 +807,23 @@ class AddressDBController extends mfBaseController {
|
|||||||
exit;
|
exit;
|
||||||
}
|
}
|
||||||
|
|
||||||
$scluster_ids = [];
|
|
||||||
foreach($campaign->salesclusters as $scluster) {
|
foreach($campaign->salesclusters as $scluster) {
|
||||||
$scluster_ids[] = $scluster->id;
|
$scluster_ids[] = $scluster->id;
|
||||||
}
|
}
|
||||||
|
} else {
|
||||||
|
// get all salesclusters
|
||||||
|
foreach(ADBNetzgebietModel::getAll() as $scluster) {
|
||||||
|
$scluster_ids[] = $scluster->id;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
}
|
||||||
$results = [];
|
$results = [];
|
||||||
|
|
||||||
$search_parts = explode(" ", $search);
|
$search_parts = explode(" ", $search);
|
||||||
|
|
||||||
$ort_search = $strasse_search = $plz_search = $hausnummer_search = [];
|
$ort_search = $strasse_search = $plz_search = $hausnummer_search = $gst_search = [];
|
||||||
|
|
||||||
foreach($search_parts as $p) {
|
foreach($search_parts as $p) {
|
||||||
$p = $this->db->escape(trim($p));
|
$p = $this->db->escape(trim($p));
|
||||||
@@ -809,6 +832,7 @@ class AddressDBController extends mfBaseController {
|
|||||||
$strasse_search[] = "strasse like '$p%'";
|
$strasse_search[] = "strasse like '$p%'";
|
||||||
$plz_search[] = "plz like '%$p%'";
|
$plz_search[] = "plz like '%$p%'";
|
||||||
$hausnummer_search[] = "hausnummer like '%$p%'";
|
$hausnummer_search[] = "hausnummer like '%$p%'";
|
||||||
|
$gst_search[] = "grund_nr like '%$p%'";
|
||||||
}
|
}
|
||||||
|
|
||||||
$where = "1=1";
|
$where = "1=1";
|
||||||
@@ -816,7 +840,13 @@ class AddressDBController extends mfBaseController {
|
|||||||
$where .= " AND netzgebiet_id IN (".implode(', ',$scluster_ids).")";
|
$where .= " AND netzgebiet_id IN (".implode(', ',$scluster_ids).")";
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if($include_gst) {
|
||||||
|
$sql = "SELECT * FROM view_hausnummer WHERE $where AND ((".implode(" OR ", $ort_search).") OR (".implode(" OR ", $strasse_search).") OR (".implode(" OR ", $plz_search).") OR (".implode(" OR ", $hausnummer_search).") OR (".implode(" OR ", $gst_search).") ) ORDER BY strasse, LENGTH(hausnummer), hausnummer";
|
||||||
|
} else {
|
||||||
$sql = "SELECT * FROM view_hausnummer WHERE $where AND ((".implode(" OR ", $ort_search).") OR (".implode(" OR ", $strasse_search).") OR (".implode(" OR ", $plz_search).") OR (".implode(" OR ", $hausnummer_search).")) ORDER BY strasse, LENGTH(hausnummer), hausnummer";
|
$sql = "SELECT * FROM view_hausnummer WHERE $where AND ((".implode(" OR ", $ort_search).") OR (".implode(" OR ", $strasse_search).") OR (".implode(" OR ", $plz_search).") OR (".implode(" OR ", $hausnummer_search).")) ORDER BY strasse, LENGTH(hausnummer), hausnummer";
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
$this->log->debug($sql);
|
$this->log->debug($sql);
|
||||||
|
|
||||||
$adb = FronkDB::singleton(ADDRESSDB_DBHOST, ADDRESSDB_DBUSER, ADDRESSDB_DBPASS, ADDRESSDB_DBNAME);
|
$adb = FronkDB::singleton(ADDRESSDB_DBHOST, ADDRESSDB_DBUSER, ADDRESSDB_DBPASS, ADDRESSDB_DBNAME);
|
||||||
@@ -831,6 +861,9 @@ class AddressDBController extends mfBaseController {
|
|||||||
|
|
||||||
while($data = $adb->fetch_object($res)) {
|
while($data = $adb->fetch_object($res)) {
|
||||||
$address_string = $data->plz." ".$data->ortschaft.", ".$data->strasse." ".$data->hausnummer;
|
$address_string = $data->plz." ".$data->ortschaft.", ".$data->strasse." ".$data->hausnummer;
|
||||||
|
if($include_gst) {
|
||||||
|
$address_string .= " | GST: ".$data->grund_nr;
|
||||||
|
}
|
||||||
$sort_key = $data->plz." ".$data->ortschaft." ".$data->strasse;
|
$sort_key = $data->plz." ".$data->ortschaft." ".$data->strasse;
|
||||||
|
|
||||||
$address = [];
|
$address = [];
|
||||||
|
|||||||
Reference in New Issue
Block a user