108 lines
5.2 KiB
PHP
108 lines
5.2 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;Bestelldatum;Bestelltyp;Status Code;Status Name;"<?=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($attribs['bep_specified']) $bep = true;
|
|
if($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 = "";
|
|
|
|
?>
|
|
"<?=$campaign->name?>";"<?=$netzgebiet->extref?>";"<?=$netzgebiet->name?>";"<?=$data->extref?>";"<?=$data->ucode?>";"<?=implode(", ",$discounts)?>";"<?=$wohneinheit->oaid?>";"<?=($data->order_date) ? date("d.m.Y",$data->order_date) : ""?>";"<?=__($data->type,"preorder")?>";"<?=$status->code?>";"<?=$status->name?>";<?=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;
|