Addedd CSV update for AddressDB Visibility and rimo id
This commit is contained in:
68
Layout/default/AddressDB/ExternalIdVisivilityUpdate.php
Normal file
68
Layout/default/AddressDB/ExternalIdVisivilityUpdate.php
Normal file
@@ -0,0 +1,68 @@
|
||||
<?php include(realpath(dirname(__FILE__)."/../../$mfLayoutPackage")."/header.php"); ?>
|
||||
|
||||
<!-- start page title -->
|
||||
<div class="row">
|
||||
<div class="col-12">
|
||||
<div class="page-title-box">
|
||||
<div class="page-title-right">
|
||||
<ol class="breadcrumb m-0">
|
||||
<li class="breadcrumb-item"><a href="<?=self::getUrl("Dashboard")?>"><?=MFAPPNAME_SLUG?></a></li>
|
||||
<li class="breadcrumb-item"><a href="<?=self::getUrl("AddressDB")?>">GWR / AddressDB</a></li>
|
||||
<li class="breadcrumb-item active">Sichtbarkeit / Rimo ID Update</li>
|
||||
</ol>
|
||||
</div>
|
||||
<h4 class="page-title">Sichtbarkeit / Rimo ID Update importieren</h4>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<!-- end page title -->
|
||||
|
||||
<div class="row">
|
||||
<div class="col-lg-12">
|
||||
|
||||
<div class="card bg-light">
|
||||
<div class="card-body">
|
||||
<h4 class="header-title mb-2">Sichtbarkeit / Rimo ID Update importieren</h4>
|
||||
|
||||
<form class="form-horizontal" method="post" action="<?=self::getUrl("AddressDB", "saveVisibilityExternalId")?>" enctype="multipart/form-data">
|
||||
<div class="card">
|
||||
<div class="card-body">
|
||||
|
||||
<div class="form-group row">
|
||||
<label class="col-lg-2 col-form-label" for="statusupdate_csv">Sichtbarkeit / Rimo ID Update CSV</label>
|
||||
<div class="col-lg-10">
|
||||
<input type="file" class="form-control" name="visibilityupdate_csv" />
|
||||
<small>Format:<br />
|
||||
<span class="text-monospace">AddressDB ID;Sichtbarkeit;Rimo External ID</span><br />
|
||||
<span class="text-monospace">1769916;public;SDIBuilding_874840562177_1645721555<br /></span>
|
||||
</small>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="form-group row">
|
||||
<label class="col-lg-2 col-form-label"></label>
|
||||
<div class="col-lg-10">
|
||||
<label>
|
||||
<input type="checkbox" value="1" name="headline" />
|
||||
Erste Zeile enthält Überschrift
|
||||
</label>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="form-group row">
|
||||
<label class="col-lg-2"></label>
|
||||
<div class="col-lg-10">
|
||||
<button type="submit" class="btn btn-primary">Importieren</button>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
</form>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
|
||||
<?php include(realpath(dirname(__FILE__)."/../../$mfLayoutPackage")."/footer.php"); ?>
|
||||
@@ -146,9 +146,14 @@
|
||||
|
||||
</div>
|
||||
</div>
|
||||
|
||||
|
||||
|
||||
<?php if($me->username == "fronk" || $me->username == "r.eschner@rmlinfrastruktur.at"): ?>
|
||||
<div class="card">
|
||||
<div class="card-body">
|
||||
<a class="btn btn-outline-secondary" href="<?=self::getUrl("AddressDB", "updateVisibilityExternalId")?>"><i class="fas fa-fw fa-file-csv"></i> Sichtbarkeit / Rimo ID Update</a>
|
||||
</div>
|
||||
</div>
|
||||
<?php endif; ?>
|
||||
|
||||
|
||||
<div class="card">
|
||||
<div class="card-body mb-3">
|
||||
|
||||
@@ -162,7 +162,7 @@ class AddressDBController extends mfBaseController {
|
||||
}
|
||||
|
||||
if(array_key_exists("visibility", $filter) && $filter['visibility']) {
|
||||
$new_filter['visibility'] = $filter['visbility'];
|
||||
$new_filter['visibility'] = $filter['visibility'];
|
||||
} else {
|
||||
$new_filter["visibility"] = ["public", "private"];
|
||||
unset($filter['visibility']);
|
||||
@@ -443,7 +443,94 @@ class AddressDBController extends mfBaseController {
|
||||
|
||||
|
||||
}
|
||||
|
||||
|
||||
|
||||
protected function updateVisibilityExternalIdAction() {
|
||||
$this->layout()->setTemplate("AddressDB/ExternalIdVisivilityUpdate");
|
||||
}
|
||||
|
||||
protected function saveVisibilityExternalIdAction() {
|
||||
$headline_included = $this->request->headline;
|
||||
|
||||
if(is_array($_FILES) && array_key_exists("visibilityupdate_csv", $_FILES) && !$_FILES['visibilityupdate_csv']['error']) {
|
||||
// look for uploaded import file
|
||||
try {
|
||||
// returns File object or throws Exception on error
|
||||
$file = mfUpload::handleFormUpload("visibilityupdate_csv");
|
||||
} catch(Exception $ex) {
|
||||
$this->layout()->setFlash("Fehler beim Dateiupload: " . $ex->getMessage(), "error");
|
||||
$this->redirect("AddressDB", "updateVisibilityExternalId");
|
||||
}
|
||||
|
||||
$i = 0;
|
||||
$forbidden = 0;
|
||||
$notfound = 0;
|
||||
$nochange = 0;
|
||||
$saved = 0;
|
||||
|
||||
$filename = $file->getFullPath();
|
||||
$input = fopen($filename, "r");
|
||||
while($csv = fgetcsv($input, 0, ";")) {
|
||||
$i++;
|
||||
if($i == 1 && $headline_included) continue;
|
||||
|
||||
if(!trim($csv[0])) {
|
||||
continue;
|
||||
}
|
||||
|
||||
$id = trim($csv[0]);
|
||||
$visibility = trim($csv[1]);
|
||||
$rimo_id = trim($csv[2]);
|
||||
|
||||
$address = new ADBHausnummer($id);
|
||||
if(!$address) {
|
||||
$notfound++;
|
||||
continue;
|
||||
}
|
||||
|
||||
$allowed_network = false;
|
||||
foreach($this->me->myNetworks(["netowner", "salespartner"]) as $my_network) {
|
||||
if($my_network->adb_netzgebiet_id == $address->netzgebiet_id) {
|
||||
$allowed_network = true;
|
||||
break;
|
||||
}
|
||||
}
|
||||
if(!$allowed_network) {
|
||||
$forbidden++;
|
||||
continue;
|
||||
}
|
||||
|
||||
if($address->rimo_id != $rimo_id || $address->visibility != $visibility) {
|
||||
$address->rimo_id = $rimo_id;
|
||||
$address->visibility = $visibility;
|
||||
$address->save();
|
||||
$saved++;
|
||||
} else {
|
||||
$nochange++;
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
$message = "Import erfolgreich. $saved/$i Adressen updated.";
|
||||
if($notfound) {
|
||||
$message .= "<br />$notfound Adressen nicht gefunden";
|
||||
}
|
||||
if($forbidden) {
|
||||
$message .= "<br />$forbidden Adressen in falschem Netzgebiet";
|
||||
}
|
||||
if($nochange) {
|
||||
$message .= "<br />$nochange Adressen ohne Änderung";
|
||||
}
|
||||
$this->layout()->setFlash($message, "success");
|
||||
$this->redirect("AddressDB", "updateVisibilityExternalId");
|
||||
|
||||
} else {
|
||||
$this->layout()->setFlash("Nichts importiert!", "info");
|
||||
$this->redirect("AddressDB", "updateVisibilityExternalId");
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
protected function apiAction() {
|
||||
if(!$this->me->is(["Admin","netowner"]) && !$this->me->can("Preorder")) {
|
||||
$this->redirect("Dashboard");
|
||||
|
||||
Reference in New Issue
Block a user