Files
thetool/Layout/default/AddressDB/export.csv.php
2024-08-20 12:51:54 +02:00

54 lines
2.4 KiB
PHP

<?php
/**
* @var boolean $no_filename
* @var resource $res
*/
$i = 0;
ob_end_flush();
header("Content-type: text/csv");
if(!$no_filename) {
header('Content-disposition: attachment; filename="addressdb-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;
}
?>
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
<?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;
$statusflags = [];
foreach($hausnummer->statusflags as $sflag) {
$statusflags[$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?>
<?php
$i++;
if($line % 1000 === 0) {
flush();
}
endwhile;