Finished create/update AddressDB records

This commit is contained in:
Frank Schubert
2023-01-16 14:11:01 +01:00
parent 25236493ee
commit 1cec6cec15
8 changed files with 558 additions and 28 deletions

View File

@@ -7,6 +7,16 @@
$urlfilter["filter"] = $filter;
}
$posturl = self::getUrl("AddressDB", "save", $urlfilter);
/*
* check if address is in one of our networks
*/
if($address_id && !array_key_exists($address->netzgebiet_id, $my_adb_networks)) {
$this->setFlash("Keine Berechtigung", "error");
mfBaseController::redirect("AddressDB");
}
?>
<?php include(realpath(dirname(__FILE__)."/../../$mfLayoutPackage")."/header.php"); ?>
<!-- start page title -->
@@ -16,7 +26,7 @@
<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")?>">AddressDB</a></li>
<li class="breadcrumb-item"><a href="<?=self::getUrl("AddressDB")?>">GWR / AddressDB</a></li>
<li class="breadcrumb-item active"><?=($address->id) ? "bearbeiten" : "Neu" ?></li>
</ol>
</div>
@@ -37,56 +47,219 @@
<div class="card">
<div class="card-body">
<input type="hidden" name="id" value="<?=$addresse->id?>" />
<?php if(is_array($save_data) && array_key_exists("oaid", $save_data)): ?>
<input type="hidden" name="id" value="<?=$save_data['id']?>" />
<input type="hidden" name="f" value="<?=$save_data['f']?>" />
<?php else: ?>
<input type="hidden" name="id" value="<?=$address->id?>" />
<input type="hidden" name="f" value="<?=$f?>" />
<?php endif; ?>
<div class="form-group row">
<label class="col-lg-2 col-form-label" for="netzgebiet_id">Netzgebiet</label>
<label class="col-lg-2 col-form-label" for="oaid">OAID</label>
<div class="col-lg-10">
<?php if(is_array($save_data) && array_key_exists("oaid", $save_data)): ?>
<input type="text" class="form-control" name="oaid" id="oaid" value="<?=$save_data['oaid']?>" readonly="readonly" />
<?php else: ?>
<input type="text" class="form-control" name="oaid" id="oaid" value="<?=$address->oaid?>" readonly="readonly" />
<?php endif; ?>
</div>
</div>
<div class="form-group row">
<label class="col-lg-2 col-form-label" for="adrcd">ADRCD</label>
<div class="col-lg-10">
<?php if(is_array($save_data) && array_key_exists("strasse", $save_data)): ?>
<input type="text" class="form-control" name="adrcd" id="adrcd" value="<?=$save_data['adrcd']?>" />
<?php else: ?>
<input type="text" class="form-control" name="adrcd" id="adrcd" value="<?=$address->adrcd?>" />
<?php endif; ?>
</div>
</div>
<div class="form-group row">
<label class="col-lg-2 col-form-label" for="extref">Extref</label>
<div class="col-lg-10">
<?php if(is_array($save_data) && array_key_exists("strasse", $save_data)): ?>
<input type="text" class="form-control" name="extref" id="extref" value="<?=$save_data['extref']?>" />
<?php else: ?>
<input type="text" class="form-control" name="extref" id="extref" value="<?=$address->extref?>" />
<?php endif; ?>
</div>
</div>
<hr />
<div class="form-group row">
<label class="col-lg-2 col-form-label" for="netzgebiet_id">Netzgebiet *</label>
<div class="col-lg-10">
<select class="form-control" name="netzgebiet_id" id="netzgebiet_id">
<?php foreach($netzgebiete as $netzgebiet): ?>
<option value="<?=$netzgebiet->id?>"><?=$netzgebiet->name?></option>
<?php foreach($my_adb_networks as $fnet): ?>
<?php if(is_array($save_data) && array_key_exists("netzgebiet_id", $save_data) && $save_data['netzgebiet_id']): ?>
<option value="<?=$fnet->id?>" <?=($save_data['netzgebiet_id'] == $fnet->id) ? "selected='selected'" : ""?>><?=$fnet->name?></option>
<?php else: ?>
<option value="<?=$fnet->id?>" <?=($address->netzgebiet_id == $fnet->id) ? "selected='selected'" : ""?>><?=$fnet->name?></option>
<?php endif; ?>
<?php endforeach; ?>
</select>
</div>
</div>
<div class="form-group row">
<label class="col-lg-2 col-form-label" for="matchcode">Matchcode</label>
<label class="col-lg-2 col-form-label" for="strasse">Straße *</label>
<div class="col-lg-10">
<input type="text" class="form-control" name="matchcode" id="matchcode" value="<?=$address->matchcode?>">
<small class="font-italic">Eindeutige Identifizierung das Produkts. Z.B. Anschlussadresse, Domainname usw.</small>
<?php if(is_array($save_data) && array_key_exists("strasse", $save_data)): ?>
<input type="text" class="form-control basicAutoComplete" data-url="<?=self::getUrl('AddressDB','api')?>?do=findStreets&autocomplete=1" name="strasse" id="strasse" value="<?=$save_data['strasse']?>">
<?php else: ?>
<input type="text" class="form-control basicAutoComplete" data-url="<?=self::getUrl('AddressDB','api')?>?do=findStreets&autocomplete=1" name="strasse" id="strasse" value="<?=$address->strasse->name?>">
<?php endif; ?>
</div>
</div>
<div class="form-group row">
<label class="col-lg-2 col-form-label" for="hausnummer">Hausnummer *</label>
<div class="col-lg-10">
<?php if(is_array($save_data) && array_key_exists("hausnummer", $save_data)): ?>
<input type="text" class="form-control" name="hausnummer" id="hausnummer" value="<?=$save_data['hausnummer']?>">
<?php else: ?>
<input type="text" class="form-control" name="hausnummer" id="hausnummer" value="<?=$address->hausnummer?>">
<?php endif; ?>
</div>
</div>
<div class="form-group row">
<label class="col-lg-2 col-form-label" for="billing_period">Verrechnungsperiode</label>
<label class="col-lg-2 col-form-label" for="plz">PLZ *</label>
<div class="col-lg-10">
<select class="form-control" name="billing_period" id="billing_period" placeholder="Verrechnungsperiode">
<option value="1" <?=($product->billing_period == 1) ? "selected='selected'" : ""?>>Monatlich</option>
<option value="12" <?=($product->billing_period == 12) ? "selected='selected'" : ""?>>Jährlich</option>
<?php if(is_array($save_data) && array_key_exists("plz", $save_data)): ?>
<input type="text" class="form-control basicAutoComplete" autocomplete="off" data-url="<?=self::getUrl('AddressDB','api')?>?do=findZips&autocomplete=1" name="plz" id="plz" value="<?=$save_data['plz']?>">
<?php else: ?>
<input type="text" class="form-control basicAutoComplete" autocomplete="off" data-url="<?=self::getUrl('AddressDB','api')?>?do=findZips&autocomplete=1" name="plz" id="plz" value="<?=$address->plz->plz?>">
<?php endif; ?>
</div>
</div>
<div class="form-group row">
<label class="col-lg-2 col-form-label" for="ortschaft">Ortschaft *</label>
<div class="col-lg-10">
<?php if(is_array($save_data) && array_key_exists("ortschaft", $save_data)): ?>
<input type="text" class="form-control basicAutoComplete" autocomplete="off" data-url="<?=self::getUrl('AddressDB','api')?>?do=findDistricts&autocomplete=1" name="ortschaft" id="ortschaft" value="<?=$save_data['ortschaft']?>">
<?php else: ?>
<input type="text" class="form-control basicAutoComplete" autocomplete="off" data-url="<?=self::getUrl('AddressDB','api')?>?do=findDistricts&autocomplete=1" name="ortschaft" id="ortschaft" value="<?=$address->ortschaft->name?>">
<?php endif; ?>
</div>
</div>
<div class="form-group row">
<label class="col-lg-2 col-form-label" for="gemeinde">Gemeinde *</label>
<div class="col-lg-10">
<?php if(is_array($save_data) && array_key_exists("gemeinde", $save_data)): ?>
<input type="text" class="form-control basicAutoComplete" autocomplete="off" data-url="<?=self::getUrl('AddressDB','api')?>?do=findCities&autocomplete=1" name="gemeinde" id="gemeinde" value="<?=$save_data['gemeinde']?>">
<?php else: ?>
<input type="text" class="form-control basicAutoComplete" autocomplete="off" data-url="<?=self::getUrl('AddressDB','api')?>?do=findCities&autocomplete=1" name="gemeinde" id="gemeinde" value="<?=$address->strasse->gemeinde->name?>">
<?php endif; ?>
</div>
</div>
<div class="form-group row">
<label class="col-lg-2 col-form-label" for="grund_nr">Grundstücksnr.</label>
<div class="col-lg-10">
<?php if(is_array($save_data) && array_key_exists("grund_nr", $save_data)): ?>
<input type="text" class="form-control" name="grund_nr" id="grund_nr" value="<?=$save_data['grund_nr']?>">
<?php else: ?>
<input type="text" class="form-control" name="grund_nr" id="grund_nr" value="<?=$address->grund_nr?>">
<?php endif; ?>
</div>
</div>
<div class="form-group row">
<label class="col-lg-2 col-form-label" for="gps_lat">GPS Breite</label>
<div class="col-lg-10">
<?php if(is_array($save_data) && array_key_exists("gps_lat", $save_data)): ?>
<input type="text" class="form-control" name="gps_lat" id="gps_lat" value="<?=$save_data['gps_lat']?>">
<?php else: ?>
<input type="text" class="form-control" name="gps_lat" id="gps_lat" value="<?=$address->gps_lat?>">
<?php endif; ?>
</div>
</div>
<div class="form-group row">
<label class="col-lg-2 col-form-label" for="gps_long">GPS Länge</label>
<div class="col-lg-10">
<?php if(is_array($save_data) && array_key_exists("gps_long", $save_data)): ?>
<input type="text" class="form-control" name="gps_long" id="gps_long" value="<?=$save_data['gps_long']?>">
<?php else: ?>
<input type="text" class="form-control" name="gps_long" id="gps_long" value="<?=$address->gps_long?>">
<?php endif; ?>
</div>
</div>
<hr />
<div class="form-group row">
<label class="col-lg-2 col-form-label" for="rollout">Rollout Jahr (Ganzzahl)</label>
<div class="col-lg-10">
<?php if(is_array($save_data) && array_key_exists("rollout", $save_data)): ?>
<input type="text" class="form-control" name="rollout" id="rollout" value="<?=$save_data['rollout']?>">
<?php else: ?>
<input type="text" class="form-control" name="rollout" id="rollout" value="<?=$address->rollout?>">
<?php endif; ?>
</div>
</div>
<div class="form-group row">
<label class="col-lg-2 col-form-label" for="rollout_info">Rollout Info</label>
<div class="col-lg-10">
<?php if(is_array($save_data) && array_key_exists("rollout_info", $save_data)): ?>
<input type="text" class="form-control" name="rollout_info" id="rollout_info" value="<?=$save_data['rollout_info']?>">
<?php else: ?>
<input type="text" class="form-control" name="rollout_info" id="rollout_info" value="<?=$address->rollout_info?>">
<?php endif; ?>
</div>
</div>
<div class="form-group row">
<label class="col-lg-2 col-form-label" for="freigabe">Erlaubte Bestelltypen</label>
<div class="col-lg-10">
<select class="form-control select2" name="freigabe[]" id="freigabe" multiple="multiple">
<?php if(is_array($save_data) && array_key_exists("freigabe", $save_data)): ?>
<option value="interest" <?=(is_array($save_data['freigabe']) && in_array("interest",$save_data['freigabe'])) ? "selected='selected'" : ""?>>Interessensbekundung</option>
<option value="provision" <?=(is_array($save_data['freigabe']) && in_array("provision",$save_data['freigabe'])) ? "selected='selected'" : ""?>>Vorsorgeanschluss</option>
<option value="order" <?=(is_array($save_data['freigabe']) && in_array("order",$save_data['freigabe'])) ? "selected='selected'" : ""?>>Vollanschluss</option>
<option value="reorder" <?=(is_array($save_data['freigabe']) && in_array("reorder",$save_data['freigabe'])) ? "selected='selected'" : ""?>>Nachbestellung</option>
<?php else: ?>
<option value="interest" <?=(is_array($address->freigaben) && in_array("interest",$address->freigaben)) ? "selected='selected'" : ""?>>Interessensbekundung</option>
<option value="provision" <?=(is_array($address->freigaben) && in_array("provision",$address->freigaben)) ? "selected='selected'" : ""?>>Vorsorgeanschluss</option>
<option value="order" <?=(is_array($address->freigaben) && in_array("order",$address->freigaben)) ? "selected='selected'" : ""?>>Vollanschluss</option>
<option value="reorder" <?=(is_array($address->freigaben) && in_array("reorder",$address->freigaben)) ? "selected='selected'" : ""?>>Nachbestellung</option>
<?php endif; ?>
</select>
</div>
</div>
<?php if(!$address->id): ?>
<hr />
</div>
</div>
<div class="card">
<div class="card-body">
<div class="form-group row">
<label class="col-lg-2 col-form-label" for="note">Interne Notiz</label>
<label class="col-lg-2 col-form-label" for="unit_count">Anzahl Wohneinheiten</label>
<div class="col-lg-10">
<textarea id="note" class="form-control" name="note" rows="5"><?=$building->note?></textarea>
<?php if(is_array($save_data) && array_key_exists("unit_count", $save_data)): ?>
<input type="text" class="form-control" name="unit_count" id="unit_count" value="<?=$save_data['unit_count']?>">
<?php else: ?>
<input type="text" class="form-control" name="unit_count" id="unit_count" value="">
<?php endif; ?>
</div>
</div>
<?php endif; ?>
</div>
</div>
<div class="form-group row">
<label class="col-lg-2"></label>
<div class="col-lg-10">
@@ -103,5 +276,21 @@
</div>
</div>
<script>
$(".select2").select2();
$('#strasse').autoComplete({minLength: 2}).keydown(preventEnter);
$('#plz').autoComplete({minLength: 1}).keydown(preventEnter);
$('#gemeinde').autoComplete({minLength: 2}).keydown(preventEnter);
$('#ortschaft').autoComplete({minLength: 2}).keydown(preventEnter);
$('#hausnummer').keydown(preventEnter);
function preventEnter() {
if(event.keyCode == 13) {
event.preventDefault();
return false;
}
}
</script>
<?php include(realpath(dirname(__FILE__)."/../../$mfLayoutPackage")."/footer.php"); ?>

View File

@@ -36,7 +36,7 @@
<select name="filter[network_id]" id="filter_network_id" class="form-control">
<option></option>
<?php foreach($my_adb_networks as $fnet): ?>
<option value="<?=$fnet->id?>" <?=($filter['network_id'] == $fnet->id) ? "selected='selected'" : ""?>><?=$fnet->name?></option>
<option value="<?=$fnet->id?>" <?=($address->netzgebiet_id == $fnet->id) ? "selected='selected'" : ""?>><?=$fnet->name?></option>
<?php endforeach; ?>
<?php if($me->isAdmin()):?><option value="null" <?=($filter['network_id'] === "null") ? 'selected="selected"' : ""?>>-- Kein Netzgebiet --</option><?php endif; ?>
</select>
@@ -137,7 +137,7 @@
<h4 class="header-title">Liste aller GWR-Adressen</h4>
</div>
<div class="float-right">
<!--<a class="btn btn-primary mb-2" href="<?=self::getUrl("AddressDB", "add")?>"><i class="fas fa-plus"></i> Neue Adresse anlegen</a>-->
<a class="btn btn-primary mb-2" href="<?=self::getUrl("AddressDB", "add")?>"><i class="fas fa-plus"></i> Neue Adresse anlegen</a>
<a class="btn btn-outline-violett mb-2" href="#" onclick="return false;"><i class="fas fa-marker"></i> Bulk update</a>
</div>

View File

@@ -136,14 +136,14 @@
<div class="row">
<div class="col-lg-6">
<div class="form-group row">
<label class="col-lg-4 col-form-label" for="gps_lat">GPS Länge (N)</label>
<label class="col-lg-4 col-form-label" for="gps_lat">GPS Breite</label>
<div class="col-lg-8">
<input type="text" class="form-control" name="gps_lat" id="gps_lat" value="<?=$building->gps_lat?>" <?=($building->gps_lat) ? "readonly='readonly'" : ""?> />
</div>
</div>
<div class="form-group row">
<label class="col-lg-4 col-form-label" for="gps_long">GPS Breite (E)</label>
<label class="col-lg-4 col-form-label" for="gps_long">GPS Länge</label>
<div class="col-lg-8">
<input type="text" class="form-control" name="gps_long" id="gps_long" value="<?=$building->gps_long?>" <?=($building->gps_lat) ? "readonly='readonly'" : ""?> />
</div>

View File

@@ -77,7 +77,10 @@ class ADBHausnummer extends mfBaseModel {
if($this->$name == null) {
if($name == "freigaben") {
$this->freigaben = explode(",", $this->freigabe);
$this->freigaben = json_decode($this->freigabe);
if(!is_array($this->freigaben)) {
$this->freigaben = [];
}
return $this->freigaben;
}

View File

@@ -20,6 +20,9 @@ class ADBHausnummerModel {
public $manual_add;
public $manual_add_by;
public $manual_add_info;
public $manual_update;
public $manual_update_by;
public $manual_update_info;
public $create = null;
public $edit = null;

View File

@@ -70,4 +70,182 @@ class AddressDB {
}
}
/*
* methods to create or update an Address from strings
*/
public function createUpdateHausnummer($data) {
$netzgebiet = null;
$gemeinde = null;
$ortschaft = null;
$strasse = null;
$plz = null;
$hausnummer = null;
//var_dump($data);exit;
if(!array_key_exists("netzgebiet_id", $data)) {
return false;
}
foreach(["gemeinde", "ortschaft", "strasse", "plz"] as $field) {
$classname = "ADB".ucfirst($field);
$idfield = $field."_id";
if(!array_key_exists($field."_id", $data)) continue;
$$field = new $classname($data[$idfield]);
if(!${$field}->id) {
$$field = null;
}
}
$netzgebiet = new ADBNetzgebiet($data['netzgebiet_id']);
if(!$netzgebiet->id) {
$this->log->debug(__CLASS__."::".__METHOD__.": Missing netzgebiet_id");
return false;
}
if(!$gemeinde) {
// dont allow creating Gemeinden
$this->log->debug(__CLASS__."::".__METHOD__.": Missing Gemeinde");
return false;
}
if(!$ortschaft) {
// search by kennziffer
if(array_key_exists("ortschaft_kennziffer", $data) && $data['ortschaft_kennziffer']) {
$ortschaft = ADBOrtschaftModel::getFirst(['kennziffer' => $data['ortschaft_kennziffer']]);
}
if(!$ortschaft) {
// search by name
if(!array_key_exists("ortschaft", $data) || !$data['ortschaft']) return false;
$ortschaft = ADBOrtschaftModel::getFirst(['gemeinde_id' => $gemeinde->id, 'name' => $data['ortschaft']]);
}
if(!$ortschaft) {
// create Ortschaft
$ortschaft = ADBOrtschaftModel::create([
'gemeinde_id' => $gemeinde->id,
'kennziffer' => ($data['ortschaft_kennziffer']) ? $data['ortschaft_kennziffer'] : null,
'name' => $data['ortschaft']
]);
if(!$ortschaft->save()) {
$this->log->debug(__CLASS__."::".__METHOD__.": Cannot save Ortschaft");
return false;
}
}
}
if(!$strasse) {
// search by kennziffer
if(array_key_exists("strasse_kennziffer", $data) && $data['strasse_kennziffer']) {
$strasse = ADBStrasseModel::getFirst(['kennziffer' => $data['strasse_kennziffer']]);
}
if(!$strasse) {
// search by name
if(!array_key_exists("strasse", $data) || !$data['strasse']) return false;
$strasse = ADBStrasseModel::getFirst(['gemeinde_id' => $gemeinde->id, 'name' => $data['strasse']]);
}
if(!$strasse) {
// create Strasse
if(!array_key_exists("strasse", $data) || !$data['strasse']) return false;
$strasse = ADBStrasseModel::create([
'gemeinde_id' => $gemeinde->id,
'kennziffer' => ($data['strasse_kennziffer']) ? $data['strasse_kennziffer'] : null,
'name' => $data['strasse']
]);
if(!$strasse->save()) {
$this->log->debug(__CLASS__."::".__METHOD__.": Cannot save Strasse");
return false;
}
}
}
if(!$plz) {
// search by plz
if(!array_key_exists("plz", $data) || !$data['plz']) return false;
$plz = ADBPlzModel::getFirst(['gemeinde_id' => $gemeinde->id, 'plz' => $data['plz']]);
if(!$plz) {
// create PLZ
$plz = ADBPlzModel::create([
'gemeinde_id' => $gemeinde->id,
'plz' => $data['plz'],
'plzstring' => $data['plz']
]);
if(!$plz->save()) {
$this->log->debug(__CLASS__."::".__METHOD__.": Cannot save PLZ");
return false;
}
}
}
if(array_key_exists("hausnummer_id", $data)) {
// if hausnummer_id is set but empty => fail
if(!$data['hausnummer_id']) return false;
$hausnummer = new ADBHausnummer($data['hausnummer_id']);
if(!$hausnummer->id) {
return false;
}
}
$me = new User();
$me->loadMe();
// build hausnummer data
//$hausnummer_data['oaid'] = (array_key_exists("oaid", $data) && $data['oaid']) ? $data['oaid'] : null;
$hausnummer_data['adrcd'] = ($data['adrcd']) ? $data['adrcd'] : null;
$hausnummer_data['extref'] = ($data['extref']) ? $data['extref'] : null;
$hausnummer_data['netzgebiet_id'] = $netzgebiet->id;
$hausnummer_data['ortschaft_id'] = $ortschaft->id;
$hausnummer_data['plz_id'] = $plz->id;
$hausnummer_data['strasse_id'] = $strasse->id;
$hausnummer_data['hausnummer'] = $data['hausnummer'];
$hausnummer_data['grund_nr'] = $data['grund_nr'];
$hausnummer_data['gps_lat'] = ($data['gps_lat']) ? str_replace(",", ".", $data['gps_lat']) : null;
$hausnummer_data['gps_long'] = ($data['gps_long']) ? str_replace(",", ".", $data['gps_long']) : null;
$hausnummer_data['rollout'] = (trim($data['rollout'])) ? trim($data['rollout']) : null;
$hausnummer_data['rollout_info'] = (trim($data['rollout_info'])) ? trim($data['rollout_info']) : null;
$hausnummer_data['freigabe'] = json_encode($data['freigabe']);
$hausnummer_data['manual_add'] = date('U');
$hausnummer_data['manual_add_by'] = $me->id;
$hausnummer_data['manual_add_info'] = "thetool user ".$me->username." via AddressDB";
$hausnummer_data['manual_update'] = date('U');
$hausnummer_data['manual_update_by'] = $me->id;
$hausnummer_data['manual_update_info'] = "thetool user ".$me->username." via AddressDB";
//var_dump($hausnummer_data, $hausnummer);exit;
if(!$hausnummer) {
// create hausnummer
$hausnummer = ADBHausnummerModel::create($hausnummer_data);
} else {
// update hausnummer
$hausnummer->update($hausnummer_data);
}
$hausnummer_id = $hausnummer->save();
if(!$hausnummer_id) {
$this->log->debug(__CLASS__."::".__METHOD__.": Cannot save Hausnummer");
return false;
}
// create OAID
if(!$hausnummer->oaid) {
$hausnummer->oaid = $hausnummer->getNewOAID();
if(!$hausnummer->save()) {
$this->log->debug(__CLASS__."::".__METHOD__.": Cannot save Hausnummer OAID");
}
}
return $hausnummer_id;
}
public function updateHausnummer($hausnummer_id, $data) {
}
}

View File

@@ -162,12 +162,169 @@ class AddressDBController extends mfBaseController {
protected function addAction() {
$this->layout()->setTemplate("AddressDB/Form");
if($this->me->is("Admin")) {
$my_networks = NetworkModel::getAll();
} else {
$my_networks = $this->me->myNetworks(["netowner", "salespartner"]);
}
$netzgebiet_ids = [];
$my_adb_networks = [];
foreach($my_networks as $network) {
if($network->adb_netzgebiet_id && !in_array($network->adb_netzgebiet_id, $netzgebiet_ids)) {
$netzgebiet_ids[] = $network->adb_netzgebiet_id;
$my_adb_networks[$network->adb_netzgebiet_id] = new ADBNetzgebiet($network->adb_netzgebiet_id);
}
}
$this->layout()->set("my_adb_networks", $my_adb_networks);
$save_data = [];
foreach($this->request->get() as $key => $value) {
$save_data[$key] = $value;
}
//var_dump($save_data);exit;
$this->layout()->set("save_data", $save_data);
}
protected function editAction() {
$id = $this->request->id;
if(!is_numeric($id) || $id < 1) {
$this->layout()->setFlash("Adresse nicht gefunden", "error");
$this->redirect("AddressDB");
}
$hausnummer = new ADBHausnummer($id);
if(!$hausnummer->id) {
$this->layout()->setFlash("Adresse nicht gefunden", "error");
$this->redirect("AddressDB");
}
/*if(!in_array($hausnummer->netzgebiet_id, $my_adb_networks)) {
$this->layout()->setFlash("Adresse nicht gefunden", "error");
$this->redirect("AddressDB");
}*/
$this->layout()->set("address", $hausnummer);
return $this->addAction();
}
protected function saveAction() {
$r = $this->request;
$id = $r->id;
//var_dump($r->get());exit;
$address_data = [];
if(is_numeric($id) && $id > 0) {
$mode = "edit";
$hausnummer = new ADBHausnummer($id);
if(!$hausnummer->id) {
$this->layout()->setFlash("Addresse nicht gefunden", "error");
$this->redirect("AddressDB");
}
$address_data['hausnummer_id'] = $hausnummer->id;
} else {
$mode = "add";
}
$required = ['netzgebiet_id','strasse','hausnummer','plz','ortschaft','gemeinde'];
foreach(['adrcd','extref','netzgebiet_id','strasse','hausnummer','plz','ortschaft','gemeinde','grund_nr','gps_lat','gps_long','unit_count'] as $field) {
if(in_array($field, $required)) {
if(!trim($r->$field)) {
$this->layout()->setFlash("'".ucfirst($field)."' darf nicht leer sein!", "error");
return $this->addAction();
//$this->redirect("AddressDB", $mode, ['id' => $id]);
}
}
$address_data[$field] = $this->db()->escape(trim($r->$field));
}
$gemeinde = ADBGemeindeModel::getFirst(['name' => $address_data['gemeinde']]);
if(!$gemeinde->id) {
$this->layout()->setFlash("Gemeinde nicht gefunden", "error");
return $this->addAction();
//$this->redirect("AddressDB", $mode, ['id' => $id]);
}
$address_data['gemeinde_id'] = $gemeinde->id;
$freigabe = [];
if(is_array($r->freigabe) && count($r->freigabe)) {
if(in_array("interest", $r->freigabe)) {
$freigabe[] = "interest";
}
if(in_array("provision", $r->freigabe)) {
$freigabe[] = "provision";
}
if(in_array("order", $r->freigabe)) {
$freigabe[] = "order";
}
if(in_array("reorder", $r->freigabe)) {
$freigabe[] = "reorder";
}
}
$address_data['freigabe'] = $freigabe;
$rollout = null;
$rollout_info = null;
if(trim($r->rollout)) {
$rollout = intval(trim($r->rollout));
}
if(trim($r->rollout_info)) {
$rollout_info = trim($r->rollout_info);
}
if(!$rollout_info) {
$rollout_info = "unscheduled";
}
$address_data['rollout'] = $rollout;
$address_data['rollout_info'] = $rollout_info;
//var_dump($address_data);exit;
$adb = new AddressDB();
$hausnummer_id = $adb->createUpdateHausnummer($address_data);
if(!$hausnummer_id) {
$this->layout()->setFlash("Fehler beim Erstellen der Adresse!", "error");
return $this->addAction();
//$this->redirect("AddressDB");
}
if($mode == "add") {
$hausnummer = new ADBHausnummer($hausnummer_id);
/*
* Wohneinheiten erstellen
*/
if($r->unit_count > 0) {
for($i = 1; $i <= $r->unit_count; $i++) {
$unit = ADBWohneinheitModel::create([
'hausnummer_id' => $hausnummer_id,
'num' => $i,
]);
$unit_id = $unit->save();
if(!$unit_id) {
$this->log->debug(__CLASS__."::".__METHOD__.": Cannot save Woneinheit");
continue;
}
$unit->oaid = $unit->getNewOAID();
$unit->save();
}
}
}
$qs = http_build_query(['filter' => ['oaid' => $hausnummer->oaid]]);
//var_dump($qs);exit;
$this->layout()->setFlash("Adresse erfolgreich gespeichert", "success");
$this->redirect("AddressDB", "Index", $qs);
}
protected function apiAction() {
if(!$this->me->is(["Admin","netowner"])) {

View File

@@ -384,7 +384,7 @@ class PreorderController extends mfBaseController {
return $this->addAction();
}
$street = ADBStrasseModel::getFirst(['name' => $street_search, 'ortschaft_id' => $district->id, 'gemeinde_id' => $city->id]);
$street = ADBStrasseModel::getFirst(['name' => $street_search, 'gemeinde_id' => $city->id]);
if(!$street) {
$this->log->debug("create street");
$street = ADBStrasseModel::create([
@@ -439,7 +439,7 @@ class PreorderController extends mfBaseController {
'freigabe' => $netzgebiet->freigabe,
'manual_add' => date('U'),
'manual_add_by' => $this->me->id,
'manual_add_info' => "thetool user ".$this->me->username
'manual_add_info' => "thetool user ".$this->me->username." via Preorder create"
]);
if(!$hausnummer->save()) {