Files
thetool/Layout/default/Preorder/export.csv.php

115 lines
5.7 KiB
PHP

<?php
/**
* @var boolean $no_filename
* @var resource $res
*/
ob_end_flush();
header("Content-type: text/csv; charset=utf-8");
if(!$no_filename) {
header('Content-disposition: attachment; filename="preorder-export-' . date('Y-m-d_H-i-s') . '.csv"');
}
$status_flags_header = [];
foreach(PreorderStatusflagModel::getAll() as $sflag) {
$status_flags_header[$sflag->code] = $sflag->code;
$status_flags_header[$sflag->code . " Datum"] = $sflag->code . " Datum";
}
?>
<?="\u{FEFF}"?>Kampagne;Netzgebiet ID;Netzgebiet;Extref;Bestellcode;Gutscheincodes;OAID;FCP;Bestelldatum;Bestelltyp;Status Code;Status Name;ADB NE;"<?=implode('";"', $status_flags_header)?>";Anschlusstyp;GWR Adresscode;Meridian;RW;HW;Anschluss Strasse;Anschluss Hausnummer;Anschluss PLZ;Anschluss Ort;Anschluss Wohneinheit;GPS Breite;GPS Länge;Anzahl Anschlüsse;Kunde Firma;Kunde UID;Kunde Vorname;Kunde Nachname;Kunde Strasse;Kunde PLZ;Kunde Ort;Kunde Telefon;Kunde Email;Partner;CIF Token;Cif Url;Cif Cable Url;Addon Lehrverrohrung Grundstück;Addon Hausverkabelung;BEP festgelegt;Starterpaket erhalten;Erstellt;Letzte Bearbeitung
<?php
$line = 0;
while($data = mysqli_fetch_object($res)):
$campaign = Layout::getMfValuecacheObject("Preordercampaign", $data->preordercampaign_id);
$status = Layout::getMfValuecacheObject("Preorderstatus", $data->status_id);
$hausnummer = Layout::getMfValuecacheObject("ADBHausnummer", $data->adb_hausnummer_id);
$wohneinheit = Layout::getMfValuecacheObject("ADBWohneinheit", $data->adb_wohneinheit_id);
$netzgebiet = Layout::getMfValuecacheObject("ADBNetzgebiet", $hausnummer->netzgebiet_id);
$strasse = Layout::getMfValuecacheObject("ADBStrasse", $hausnummer->strasse_id);
$gemeinde = Layout::getMfValuecacheObject("ADBGemeinde",$strasse->gemeinde_id);
$ortschaft = Layout::getMfValuecacheObject("ADBOrtschaft", $hausnummer->ortschaft_id);
$plz = Layout::getMfValuecacheObject("ADBPlz", $hausnummer->plz_id);
$partner = Layout::getMfValuecacheObject("Address", $data->partner_id);
$preorder = Layout::getMfValuecacheObject("Preorder", $data->id);
$statusflags = [];
foreach($preorder->statusflags as $sflag) {
$statusflags[$sflag->code] = $sflag->value->value ? 1 : 0;
if($sflag->value->value) {
$historyEntry = PreorderHistoryModel::getFirst([
"preorder_id" => $preorder->id,
"key" => "preorderstatusflag-".$sflag->id."-value",
"new_value" => 1
]);
$statusflags[$sflag->code . " Datum"] = ($historyEntry) ? date("Y-m-d H:i:s", $historyEntry->create) : "";
} else {
$statusflags[$sflag->code . " Datum"] = "";
}
}
$discounts = [];
if(is_array($preorder->discounts) && count($preorder->discounts)) {
foreach($preorder->discounts as $discount) {
$discounts[] = $discount->code;
}
}
$adrcd = $hausnummer->adrcd;
if($hausnummer->subcd) {
$adrcd .= "-".$hausnummer->subcd;
}
$unit_data = "";
if($wohneinheit->block) $unit_data .= "Block ".$wohneinheit->block;
if($wohneinheit->stiege) $unit_data .= "Stiege ".$wohneinheit->stiege;
if($wohneinheit->stock) $unit_data .= "Stock ".$wohneinheit->stock;
if($wohneinheit->tuer) $unit_data .= "Tür ".$wohneinheit->tuer;
if($wohneinheit->unit_string) {
$unit_data = $wohneinheit->unit_string;
}
$bep = false;
$inhouse = false;
if($data->attributes) {
$attribs = json_decode($data->attributes, true);
if(isset($attribs['bep_specified']) && $attribs['bep_specified']) $bep = true;
if(isset($attribs['inhouse_cabling_supplied']) && $attribs['inhouse_cabling_supplied']) $inhouse = true;
}
$addon_property = 0;
$addon_inhouse = 0;
if($data->addon_services) {
$services = json_decode($data->addon_services);
if(is_array($services) && count($services)) {
foreach($services as $service) {
if($service->service == "installation_onproperty" && $service->ordered) {
$addon_property = 1;
}
if($service->service == "installation_inhouse" && $service->ordered) {
$addon_inhouse = 1;
}
}
}
}
if($data->uid == "string") $data->uid = "";
$fcp = "";
if ($hausnummer->fcp_id) {
$fcp = ADBRimoFcp::get($hausnummer->fcp_id);
$fcp = $fcp->name;
}
?>
"<?=$campaign->name?>";"<?=$netzgebiet->extref?>";"<?=$netzgebiet->name?>";"<?=$data->extref?>";"<?=$data->ucode?>";"<?=implode(", ",$discounts)?>";"<?=$wohneinheit->oaid?>";"<?=$fcp?>";"<?=($data->order_date) ? date("d.m.Y",$data->order_date) : ""?>";"<?=__($data->type,"preorder")?>";"<?=$status->code?>";"<?=$status->name?>";"<?=count($hausnummer->wohneinheiten) ?>";<?=implode(";", $statusflags)?>;"<?=__($data->connection_type,"preorder")?>";"<?=$adrcd?>";"<?=$hausnummer->meridian?>";"<?=$hausnummer->rw?>";"<?=$hausnummer->hw?>";"<?=$strasse->name?>";"<?=$hausnummer->hausnummer?>";"<?=$plz->plz?>";"<?=$ortschaft->name?>";"<?=$unit_data?>";"<?=$hausnummer->gps_lat?>";"<?=$hausnummer->gps_long?>";<?=$data->connection_count?>;"<?=$data->company?>";"<?=$data->uid?>";"<?=$data->firstname?>";"<?=$data->lastname?>";"<?=$data->street?>";"<?=$data->zip?>";"<?=$data->city?>";"<?=$data->phone?>";"<?=$data->email?>";"<?=$partner->getCompanyOrName()?>";"<?=$data->ciftoken?>";"<?=$data->cifurl?>";"<?=$data->cifcableurl?>";<?=$addon_property?>;<?=$addon_inhouse?>;<?=($bep) ? "1" : "0"?>;<?=($inhouse) ? "1" : "0"?>;"<?=date("Y-m-d H:i:s",$data->create)?>";"<?=date("Y-m-d H:i:s",$data->edit)?>"
<?php
$line++;
if($line % 1000 === 0) {
flush();
}
endwhile;