ADB Statusflag done & Preorder statusflag import

This commit is contained in:
Frank Schubert
2024-08-20 12:51:54 +02:00
parent 03a53bbbd2
commit fcbbb82abc
10 changed files with 232 additions and 11 deletions

View File

@@ -71,6 +71,24 @@
</tr><tr>
<th>Status Text</th>
<td class="text-monospace"><?=$address->status->name?></td>
</tr><tr>
<th>Statusflags</th>
<td>
<table class="table table-sm table-bordered table-striped bg-white">
<tr>
<th class="text-left"></th>
<th class="text-left">Code</th>
<th class="text-left">Text</th>
</tr>
<?php foreach($address->statusflags as $flag): ?>
<tr>
<td class="text-center"><?=($flag->value->value) ? "<i class='fas fa-check text-success'></i>" : ""?></td>
<td><?=$flag->code?></td>
<td><?=$flag->name?></td>
</tr>
<?php endforeach; ?>
</table>
</td>
</tr><tr>
<td colspan="2"><h4>Adresse</h4></td>
</tr><tr>

View File

@@ -10,12 +10,19 @@ 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;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
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);
@@ -29,8 +36,14 @@ while($data = mysqli_fetch_object($res)):
$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?>";"<?=$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?>
<?=$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++;

View File

@@ -22,6 +22,14 @@
<div class="card bg-light">
<div class="card-body">
<div class="alert alert-info">
<p>
<strong>Werden Statusflags importiert, muss die Überschrift im CSV-File vorhanden sein!</strong><br />
Statusflags können in beliebiger Reihenfolge angegeben werden, die Positionen müssen aber in Kopfzeile und Datenzeilen übereinstimmen.<br/>
Nur zu ändernde Statusflags müssen angeführt werden.<br/>
Statusflags können 1 (=gesetzt), 0 (=nicht gesetzt) oder leer sein. Ist das Feld leer, wird der Wert des Flags nicht verändert.
</p>
</div>
<h4 class="header-title mb-2">Statusupdates importieren</h4>
<form class="form-horizontal" method="post" action="<?=self::getUrl("Preorder", "saveStatusupdateimport")?>" enctype="multipart/form-data">
@@ -32,7 +40,15 @@
<label class="col-lg-2 col-form-label" for="statusupdate_csv">Statusupdate CSV</label>
<div class="col-lg-10">
<input type="file" class="form-control" name="statusupdate_csv" />
<small>Format: <span class="text-monospace">OAID;Neuer Status Code</span></small>
<small>
Format: <span class="text-monospace">OAID;Neuer Status Code;[flag;...]</span><br />
Beispiel:<br />
<span class="text-monospace">
OAID;new_code;141;145;150;200;242<br />
HJR47J;200;1;0;;;
</span>
</small>
</div>
</div>

View File

@@ -8,8 +8,14 @@ header("Content-type: text/csv");
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;
}
?>
Kampagne;Netzgebiet ID;Netzgebiet;Extref;Bestellcode;Gutscheincodes;OAID;Bestelldatum;Bestelltyp;Status Code; Status Name;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
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;
@@ -26,6 +32,11 @@ while($data = mysqli_fetch_object($res)):
$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;
}
$discounts = [];
if(is_array($preorder->discounts) && count($preorder->discounts)) {
foreach($preorder->discounts as $discount) {
@@ -76,7 +87,7 @@ while($data = mysqli_fetch_object($res)):
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?>";"<?=__($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)?>"
"<?=$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) {

View File

@@ -222,7 +222,24 @@
</tr><tr>
<th>Status</th>
<td id="preorder-detail-building-status-<?=$preorder->id?>" class="text-monospace"><?=$preorder->adb_hausnummer->status->code?> - <?=$preorder->adb_hausnummer->status->name?></td>
</tr><tr>
<th>Statusflags</th>
<td>
<table class="table table-sm table-bordered table-striped bg-white">
<tr>
<th></th>
<th>Code</th>
<th>Text</th>
</tr>
<?php foreach($preorder->adb_hausnummer->statusflags as $flag): ?>
<tr>
<td class="text-center"><?=($flag->value->value) ? "<i class='fas fa-check text-success'></i>" : ""?></td>
<td><?=$flag->code?></td>
<td><?=$flag->name?></td>
</tr>
<?php endforeach; ?>
</table>
</td>
</tr><tr>
<th>Extref</th>
<td class="text-monospace"><?=$preorder->adb_hausnummer->extref?></td>