62 lines
3.4 KiB
PHP
62 lines
3.4 KiB
PHP
<?php
|
|
/**
|
|
* @var boolean $no_filename
|
|
* @var resource $res
|
|
*/
|
|
$i = 0;
|
|
ob_end_flush();
|
|
header("Content-type: text/csv; charset=utf-8");
|
|
if(!$no_filename) {
|
|
header('Content-disposition: attachment; filename="addressdb-homes-export-'.date('Y-m-d_H-i-s').'.csv"');
|
|
}
|
|
//header('Content-disposition: attachment; filename="addressdb-export-'.date('Y-m-d_H-i-s').'.csv"');
|
|
|
|
$status_flags_header = [];
|
|
foreach(ADBStatusflagModel::getAll() as $sflag) {
|
|
$status_flags_header[$sflag->code] = $sflag->code;
|
|
}
|
|
|
|
?>
|
|
<?="\u{FEFF}"?>AddressDB_ID;Extref;Adrcd;OAID;Status Code;Status Name;"<?=implode('";"', $status_flags_header)?>";Netzgebiet_Extref;Netzgebiet;Rimo Building External ID;GKZ;Gemeinde;OKZ;Ortschaft;PLZ;SKZ;Strasse;Hausnummer;Grundstueck;GPS Breite;GPS Laenge;Rollout;Rollout_Info;Freigabe;Nutzungseinheiten;GDA-Eigenschaft;Meridian;RW;HW;Sichtbarkeit;Home Nummer;Home Extref;Home OAID;Block;Stiege;Stock;Tür;Zusatz;Bezeichner;Anzahl Bestellungen;Status Code;Status Text;"<?=implode('";"', $status_flags_header)?>";Erstellt;Letzte Bearbeitung
|
|
<?php
|
|
$line = 0;
|
|
|
|
while($data = mysqli_fetch_object($res)):
|
|
$hausnummer = new ADBHausnummer($data->id);
|
|
$netzgebiet = Layout::getMfValuecacheObject("ADBNetzgebiet", $data->netzgebiet_id);
|
|
$strasse = Layout::getMfValuecacheObject("ADBStrasse", $data->strasse_id);
|
|
$gemeinde = Layout::getMfValuecacheObject("ADBGemeinde",$strasse->gemeinde_id);
|
|
$ortschaft = Layout::getMfValuecacheObject("ADBOrtschaft", $data->ortschaft_id);
|
|
$plz = Layout::getMfValuecacheObject("ADBPlz", $data->plz_id);
|
|
$status = Layout::getMfValuecacheObject("ADBStatus", $data->status_id);
|
|
$freigabe_array = json_decode($data->freigabe);
|
|
if(is_array($freigabe_array)) {
|
|
$freigabe = join(", ", $freigabe_array);
|
|
} else {
|
|
$freigabe = "";
|
|
}
|
|
$unit_count = $data->unit_count;
|
|
$homes = $hausnummer->wohneinheiten;
|
|
if(!$homes) continue;
|
|
|
|
$statusflags = [];
|
|
foreach($hausnummer->statusflags as $sflag) {
|
|
$statusflags[$sflag->code] = $sflag->value->value ? 1 : 0;
|
|
}
|
|
|
|
$homeflags = [];
|
|
foreach($homes as $home) {
|
|
$order_count = PreorderModel::countActive(["adb_wohneinheit_id" => $home->id]);
|
|
foreach($home->statusflags as $sflag) {
|
|
$homeflags[$sflag->code] = $sflag->value->value ? 1 : 0;
|
|
}
|
|
?>
|
|
<?=$data->id?>;"<?=$data->extref?>";<?=$data->adrcd?>;"<?=$data->oaid?>";"<?=$status->code?>";"<?=$status->name?>";<?=implode(";", $statusflags)?>;"<?=$netzgebiet->extref?>";"<?=$netzgebiet->name?>";"<?=$data->rimo_id?>";<?=$gemeinde->kennziffer?>;"<?=$gemeinde->name?>";<?=$ortschaft->kennziffer?>;"<?=$ortschaft->name?>";"<?=$plz->plz?>";<?=$strasse->kennziffer?>;"<?=$strasse->name?>";"<?=$data->hausnummer?>";"<?=$data->grund_nr?>";<?=$data->gps_lat?>;<?=$data->gps_long?>;<?=$data->rollout?>;"<?=$data->rollout_info?>";"<?=$freigabe?>";<?=$unit_count?>;"<?=$data->gdaeigenschaft?>";"<?=$data->meridian?>";<?=$data->rw?>;<?=$data->hw?>;<?=$data->visibility?>;<?=$home->num?>;"<?=$home->extref?>";"<?=$home->oaid?>";"<?=$home->block?>";"<?=$home->stiege?>";"<?=$home->stock?>";"<?=$home->tuer?>";"<?=$home->zusatz?>";"<?=$home->bezeichner?>";<?=$order_count?>;<?=$home->status->code?>;"<?=$home->status->name?>";<?=implode(";", $homeflags)?>;"<?=date("Y-m-d H:i:s",$home->create)?>";"<?=date("Y-m-d H:i:s",$home->edit)?>"
|
|
<?php
|
|
$i++;
|
|
if($line % 1000 === 0) {
|
|
flush();
|
|
}
|
|
}
|
|
|
|
endwhile;
|