Addedd CSV update for AddressDB Visibility and rimo id
This commit is contained in:
@@ -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