Added AddressDB layouts
This commit is contained in:
@@ -9,11 +9,166 @@ class AddressDBController extends mfBaseController {
|
||||
$this->me = $me;
|
||||
$this->layout()->set("me",$me);
|
||||
|
||||
if(!$me->is(["Admin", "netowner", "pipeplanner"])) {
|
||||
if(!$me->is(["Admin", "netowner"])) {
|
||||
$this->redirect("Dashboard");
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
protected function indexAction() {
|
||||
$this->layout()->setTemplate("AddressDB/Index");
|
||||
|
||||
$rfilter = $this->request->filter;
|
||||
iF(!is_array($rfilter)) {
|
||||
$rfilter = [];
|
||||
}
|
||||
|
||||
$this->layout->set("filter", $rfilter);
|
||||
|
||||
$where = "";
|
||||
$filter = $this->getPreparedFilter($rfilter);
|
||||
|
||||
// pagination defaults
|
||||
$pagination = [];
|
||||
$pagination['start'] = 0;
|
||||
$pagination['count'] = 25;
|
||||
$pagination['maxItems'] = 0;
|
||||
|
||||
if(is_numeric($this->request->s)) {
|
||||
$pagination['start'] = intval($this->request->s);
|
||||
}
|
||||
|
||||
|
||||
if($this->me->is("Admin")) {
|
||||
$my_networks = NetworkModel::getAll();
|
||||
if($filter['network_id']) {
|
||||
$filter['netzgebiet_id'] = $filter['network_id'];
|
||||
}
|
||||
} 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);
|
||||
}
|
||||
}
|
||||
//var_dump($filter, $my_adb_networks);
|
||||
if(!$this->me->is("Admin") && array_key_exists("network_id", $filter)) {
|
||||
if(array_key_exists($filter['network_id'], $my_adb_networks)) {
|
||||
$filter['netzgebiet_id'] = $filter['network_id'];
|
||||
} else {
|
||||
unset($filter['network_id']);
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
$addressdb_filter = $filter;
|
||||
if(!array_key_exists("netzgebiet_id", $addressdb_filter)) {
|
||||
$addressdb_filter['netzgebiet_id'] = $netzgebiet_ids;
|
||||
}
|
||||
|
||||
$this->layout()->set("my_networks", ADBNetzgebietModel::getAll());
|
||||
$this->layout()->set("my_adb_networks", $my_adb_networks);
|
||||
//var_dump($addressdb_filter);exit;
|
||||
|
||||
if($filter['netzgebiet_id'] === "null") {
|
||||
$addressdb_filter['netzgebiet_id'] = 0;
|
||||
$pagination['maxItems'] = ADBHausnummerModel::count($addressdb_filter);
|
||||
$addresses = ADBHausnummerModel::search($addressdb_filter, $pagination);
|
||||
} else if(count($my_adb_networks)) {
|
||||
$pagination['maxItems'] = ADBHausnummerModel::count($addressdb_filter);
|
||||
$addresses = ADBHausnummerModel::search($addressdb_filter, $pagination);
|
||||
}
|
||||
$this->layout()->set("pagination", $pagination);
|
||||
$this->layout()->set("addresses", $addresses);
|
||||
|
||||
// get filter lists
|
||||
$filter_filter = [];
|
||||
if(array_key_exists("netzgebiet_id", $addressdb_filter)) {
|
||||
$filter_filter["netzgebiet_id"] = $netzgebiet_ids;
|
||||
$this->layout()->set("gemeinden", ADBGemeindeModel::search($filter_filter));
|
||||
if(array_key_exists("gemeinde_id", $addressdb_filter)) {
|
||||
$filter_filter['gemeinde_id'] = $addressdb_filter['gemeinde_id'];
|
||||
}
|
||||
$this->layout()->set("ortschaften", ADBOrtschaftModel::search($filter_filter));
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
|
||||
protected function getPreparedFilter($filter) {
|
||||
$new_filter = [];
|
||||
|
||||
if(array_key_exists("street", $filter) && $filter['street']) {
|
||||
$new_filter['strasse%'] = "%".$filter['street'];
|
||||
unset($filter['street']);
|
||||
}
|
||||
|
||||
if(array_key_exists("adrcd", $filter) && $filter['adrcd']) {
|
||||
$new_filter['adrcd%'] = $filter['adrcd'];
|
||||
unset($filter['adrcd']);
|
||||
}
|
||||
|
||||
if(array_key_exists("oaid", $filter) && $filter['oaid']) {
|
||||
$new_filter['oaid%'] = $filter['oaid'];
|
||||
unset($filter['oaid']);
|
||||
}
|
||||
|
||||
if(array_key_exists("extref", $filter) && $filter['extref']) {
|
||||
$new_filter['extref%'] = "%".$filter['extref'];
|
||||
unset($filter['extref']);
|
||||
}
|
||||
|
||||
if(array_key_exists("zip", $filter) && $filter['zip']) {
|
||||
$new_filter['plz%'] = $filter['zip'];
|
||||
unset($filter['zip']);
|
||||
}
|
||||
|
||||
if(array_key_exists("rollout", $filter) && $filter['rollout']) {
|
||||
$new_filter['rollout%'] = $filter['rollout'];
|
||||
unset($filter['rollout']);
|
||||
}
|
||||
|
||||
if(array_key_exists("rollout_info", $filter) && $filter['rollout_info']) {
|
||||
$new_filter['rollout_info%'] = $filter['rollout_info'];
|
||||
unset($filter['rollout_info']);
|
||||
}
|
||||
|
||||
if(array_key_exists("gemeinde", $filter) && $filter['gemeinde']) {
|
||||
$new_filter['gemeinde%'] = $filter['gemeinde'];
|
||||
unset($filter['gemeinde']);
|
||||
unset($filter['gemeinde_id']);
|
||||
}
|
||||
|
||||
if(array_key_exists("ortschaft", $filter) && $filter['ortschaft']) {
|
||||
$new_filter['ortschaft%'] = $filter['ortschaft'];
|
||||
unset($filter['ortschaft']);
|
||||
unset($filter['ortschaft_id']);
|
||||
}
|
||||
|
||||
if(is_array($filter) && count($filter)) {
|
||||
foreach($filter as $name => $value) {
|
||||
$new_filter[$name] = $value;
|
||||
}
|
||||
}
|
||||
|
||||
return $new_filter;
|
||||
}
|
||||
|
||||
protected function addAction() {
|
||||
$this->layout()->setTemplate("AddressDB/Form");
|
||||
|
||||
}
|
||||
|
||||
protected function editAction() {
|
||||
return $this->addAction();
|
||||
}
|
||||
|
||||
|
||||
protected function apiAction() {
|
||||
if(!$this->me->is(["Admin","netowner"])) {
|
||||
$this->redirect("Dashboard");
|
||||
|
||||
Reference in New Issue
Block a user