Merge branch 'fronkdev' into 'master'
Create Workorder button in Preorder/Index now always visible for admins See merge request fronk/thetool!751
This commit is contained in:
@@ -430,7 +430,7 @@
|
||||
</table>
|
||||
<?php endforeach; ?>
|
||||
|
||||
<?php elseif($preorder->adb_wohneinheit_id && $preorder->type == "legacytransfer"): ?>
|
||||
<?php elseif($preorder->adb_wohneinheit_id && $me->is("Admin")): ?>
|
||||
<button type="button" class="btn btn-outline-primary create-workorder" onclick="createWorkorder(<?=$preorder->id?>)"><i class="fas fa-fw fa-plus"></i> <i class="fas fa-r"></i><i class="fas fa-fw fa-gears"></i> Wokorder erstellen</button>
|
||||
<?php endif; ?>
|
||||
|
||||
|
||||
@@ -46,8 +46,15 @@ class ADBHausnummerStatusflagValue extends mfBaseModel {
|
||||
|
||||
if($name == "flag") {
|
||||
if(!$this->flag_id) return null;
|
||||
$flag = new ADBStatusflag($this->flag_id);
|
||||
if($flag->id) {
|
||||
|
||||
$flag = mfValuecache::singleton()->get("mfObjectmodel-ADBStatusflag-".$this->flag_id);
|
||||
if(!$flag) {
|
||||
$flag = new ADBStatusflag($this->flag_id);
|
||||
if ($flag->id) {
|
||||
$this->flag = $flag;
|
||||
mfValuecache::singleton()->set("mfObjectmodel-ADBStatusflag-" . $flag->id, $flag);
|
||||
}
|
||||
} else {
|
||||
$this->flag = $flag;
|
||||
}
|
||||
return $this->flag;
|
||||
|
||||
@@ -6,4 +6,17 @@ class ADBStatus extends mfBaseModel {
|
||||
$this->db = FronkDB::singleton(ADDRESSDB_DBHOST, ADDRESSDB_DBUSER, ADDRESSDB_DBPASS, ADDRESSDB_DBNAME);
|
||||
$this->table = "Status";
|
||||
}
|
||||
|
||||
public function getApiArray() {
|
||||
if(!$this->id) {
|
||||
return false;
|
||||
}
|
||||
|
||||
$a = [];
|
||||
$a['code'] = (int)$this->code;
|
||||
$a['text'] = $this->name;
|
||||
$a['flags'] = [];
|
||||
|
||||
return $a;
|
||||
}
|
||||
}
|
||||
@@ -839,9 +839,9 @@ class AddressdbApicontroller extends mfBaseApicontroller {
|
||||
}
|
||||
|
||||
protected function exportAddresses() {
|
||||
if($this->me->username != 'r.eschner@rmlinfrastruktur.at') {
|
||||
return mfResponse::Forbidden();
|
||||
}
|
||||
//if($this->me->username != 'r.eschner@rmlinfrastruktur.at') {
|
||||
// return mfResponse::Forbidden();
|
||||
//}
|
||||
|
||||
if($this->me->is("Admin")) {
|
||||
$my_networks = NetworkModel::getAll();
|
||||
|
||||
150
application/Api/v1/PreorderconstructionApicontroller.php
Normal file
150
application/Api/v1/PreorderconstructionApicontroller.php
Normal file
@@ -0,0 +1,150 @@
|
||||
<?php
|
||||
|
||||
class PreorderconstructionApicontroller extends mfBaseApicontroller {
|
||||
|
||||
public function init() {
|
||||
$this->addRoute("/preorderconstruction/address", "getAddresses", "GET");
|
||||
$this->addRoute("/preorderconstruction/preorder", "getPreorders", "GET");
|
||||
}
|
||||
|
||||
protected function authenticated() {
|
||||
if($this->me->username != "fronk") {
|
||||
return \mfResponse::Forbidden();
|
||||
}
|
||||
}
|
||||
|
||||
protected function getAddresses() {
|
||||
$db = $this->db(ADDRESSDB_DBHOST, ADDRESSDB_DBUSER, ADDRESSDB_DBPASS, ADDRESSDB_DBNAME);
|
||||
|
||||
/*if($this->me->username != 'r.eschner@rmlinfrastruktur.at') {
|
||||
return mfResponse::Forbidden();
|
||||
}*/
|
||||
|
||||
if($this->me->is("Admin")) {
|
||||
$my_networks = NetworkModel::getAll();
|
||||
} else {
|
||||
$my_networks = $this->me->myNetworks(["netowner", "salespartner"]);
|
||||
}
|
||||
|
||||
$netzgebiet_ids = [];
|
||||
$adb_network_ids = [];
|
||||
foreach($my_networks as $network) {
|
||||
if($network->adb_netzgebiet_id && !in_array($network->adb_netzgebiet_id, $netzgebiet_ids)) {
|
||||
$netzgebiet_ids[] = $network->id;
|
||||
$adb_network_ids[] = $network->adb_netzgebiet_id;
|
||||
}
|
||||
}
|
||||
|
||||
$sd_terms = [];
|
||||
$md_terms = [];
|
||||
|
||||
foreach(TT_ADB_GDA_TYPES as $term => $type) {
|
||||
if($type == "sd") $sd_terms[] = $term;
|
||||
if($type == "md") $md_terms[] = $term;
|
||||
}
|
||||
|
||||
//var_dump($adb_network_ids);exit;
|
||||
$sql = "SELECT Hausnummer.*, COUNT(Wohneinheit.id) as unit_count FROM Hausnummer
|
||||
LEFT JOIN Wohneinheit ON (Wohneinheit.hausnummer_id = Hausnummer.id)
|
||||
WHERE netzgebiet_id IN (".implode(",", $adb_network_ids).")
|
||||
AND (rimo_type IN ('".implode("', '" ,$md_terms)."')
|
||||
OR ((rimo_type IS NULL OR rimo_type='') AND gdaeigenschaft IN ('".implode("', '" ,$md_terms)."')))
|
||||
GROUP BY Hausnummer.id,Wohneinheit.id";
|
||||
//echo "$sql\n";exit;
|
||||
$res = $db->query($sql);
|
||||
|
||||
$stati = [];
|
||||
$netzgebiete = [];
|
||||
$ortschaften = [];
|
||||
$gemeinden = [];
|
||||
$strassen = [];
|
||||
$plzs = [];
|
||||
$addresses = [];
|
||||
|
||||
while($data = $db->fetch_object($res)) {
|
||||
if(!array_key_exists($data->netzgebiet_id, $netzgebiete)) {
|
||||
$netzgebiete[$data->netzgebiet_id] = new ADBNetzgebiet($data->netzgebiet_id);
|
||||
}
|
||||
$netzgebiet = $netzgebiete[$data->netzgebiet_id];
|
||||
|
||||
if(!array_key_exists($data->ortschaft_id, $ortschaften)) {
|
||||
$ortschaften[$data->ortschaft_id] = new ADBOrtschaft($data->ortschaft_id);
|
||||
}
|
||||
$ortschaft = $ortschaften[$data->ortschaft_id];
|
||||
|
||||
if(!array_key_exists($data->strasse_id, $strassen)) {
|
||||
$strassen[$data->strasse_id] = new ADBStrasse($data->strasse_id);
|
||||
}
|
||||
$strasse = $strassen[$data->strasse_id];
|
||||
|
||||
if(!array_key_exists($strassen[$data->strasse_id]->gemeinde_id, $gemeinden)) {
|
||||
$gemeinden[$strasse->gemeinde_id] = new ADBGemeinde($strasse->gemeinde_id);
|
||||
}
|
||||
$gemeinde = $gemeinden[$strasse->gemeinde_id];
|
||||
|
||||
if(!array_key_exists($data->plz_id, $plzs)) {
|
||||
$plzs[$data->plz_id] = new ADBPlz($data->plz_id);
|
||||
}
|
||||
$plz = $plzs[$data->plz_id];
|
||||
|
||||
if(!array_key_exists($data->status_id, $stati)) {
|
||||
$stati[$data->status_id] = new ADBStatus($data->status_id);
|
||||
}
|
||||
$status = $stati[$data->status_id]->getApiArray();
|
||||
//$status->flags = [];
|
||||
|
||||
foreach(ADBHausnummerStatusflagValueModel::search(["hausnummer_id" => $data->id]) as $sflag) {
|
||||
$status["flags"][] = [
|
||||
"code" => (int)$sflag->flag->code,
|
||||
"text" => $sflag->flag->name,
|
||||
"value" => ($sflag->value == 1)
|
||||
];
|
||||
}
|
||||
|
||||
$address = [];
|
||||
$address["id"] = (int)$data->id;
|
||||
$address["extref"] = $data->extref;
|
||||
$address["adrcd"] = $data->adrcd;
|
||||
$address["oaid"] = $data->oaid;
|
||||
$address["status"] = $status;
|
||||
$address["netzgebiet_extref"] = $netzgebiet->extref;
|
||||
$address["netzgebiet_name"] = $netzgebiet->name;
|
||||
$address["rimo_external_id"] = $data->rimo_id;
|
||||
$address["skz"] = (int)$strasse->kennziffer;
|
||||
$address["strasse"] = $strasse->name;
|
||||
$address["hausnummer"] = $data->hausnummer;
|
||||
$address["plz"] = $plz->plz;
|
||||
$address["okz"] = (int)$ortschaft->kennziffer;
|
||||
$address["ortschaft"] = $ortschaft->name;
|
||||
$address["gkz"] = (int)$gemeinde->kennziffer;
|
||||
$address["gemeinde"] = $gemeinde->name;
|
||||
$address["grundstueck"] = $data->grund_nr;
|
||||
$address["gps"] = [
|
||||
"lat" => $data->gps_lat,
|
||||
"long" => $data->gps_long,
|
||||
];
|
||||
$address["rollout"] = $data->rollout;
|
||||
$address["rollout_info"] = $data->rollout_info;
|
||||
$address["freigabe"] = ($data->freigabe) ? json_decode($data->freigabe) : null;
|
||||
$address["nutzungseinheiten"] = (int)$data->unit_count;
|
||||
$address["gdaeigenschaft"] = $data->gdaeigenschaft;
|
||||
$address["meridian"] = $data->meridian;
|
||||
$address["rw"] = $data->rw;
|
||||
$address["hw"] = $data->hw;
|
||||
$address["order_api_visibility"] = $data->visibility;
|
||||
$address['created'] = date("c", $data->create);
|
||||
$address['created_ts'] = (int)$data->create;
|
||||
$address['updated'] = date("c", $data->edit);
|
||||
$address['updated_ts'] = (int)$data->edit;
|
||||
|
||||
$addresses[] = $address;
|
||||
}
|
||||
|
||||
return mfResponse::Ok(["addresses" => $addresses]);
|
||||
}
|
||||
|
||||
protected function getPreorders() {
|
||||
|
||||
}
|
||||
|
||||
}
|
||||
@@ -101,8 +101,10 @@ class Preorder extends mfBaseModel {
|
||||
}
|
||||
}
|
||||
|
||||
foreach($this->getProperty("adb_wohneinheit")->rimo_workorders as $workorder) {
|
||||
Rimoapi::updateWorkorder($workorder->rimo_id, $update);
|
||||
if($this->adb_wohneinheit_id && is_array($this->getProperty("adb_wohneinheit")->rimo_workorders)) {
|
||||
foreach($this->getProperty("adb_wohneinheit")->rimo_workorders as $workorder) {
|
||||
Rimoapi::updateWorkorder($workorder->rimo_id, $update);
|
||||
}
|
||||
}
|
||||
|
||||
return true;
|
||||
|
||||
@@ -1289,7 +1289,10 @@ class PreorderController extends mfBaseController {
|
||||
return false;
|
||||
}
|
||||
|
||||
if($preorder->type != "legacytransfer") {
|
||||
/*if($preorder->type != "legacytransfer") {
|
||||
return false;
|
||||
}*/
|
||||
if(!$this->me->is("Admin")) {
|
||||
return false;
|
||||
}
|
||||
|
||||
|
||||
@@ -71,7 +71,7 @@ class AddressHelper
|
||||
if (array_key_exists(3, $m)) {
|
||||
$addresszusatz = trim($m[3]);
|
||||
}
|
||||
} elseif (preg_match('/^(\D+)\s+(\d+[a-z0-9\/&#._-]*)(?:\s+((?:gesch(?:ae|ä)ft|werkstatt|betrieb und wohnungen|stg|paketlogistik|cafe|pavillon|pfarrheim|[^ ]*haus|[^ ]*geb(?:ae|ä)ude|[^ ]*halle|[^ ]*schule|Öhlmühle)(?:\s+[a-z0-9]+)?))?/i', $strasse_hausnummer, $m)) {
|
||||
} elseif (preg_match('/^(\D+)\s+(\d+[a-z0-9\/&#._-]*)(?:\s+((?:gesch(?:ae|ä)ft|werkstatt|schmiede|betrieb und wohnungen|stg|paketlogistik|cafe|pavillon|pfarrheim|[^ ]*haus|[^ ]*geb(?:ae|ä)ude|[^ ]*halle|[^ ]*schule|Öhlmühle)(?:\s+[a-z0-9]+)?))?/i', $strasse_hausnummer, $m)) {
|
||||
$strasse_name = trim($m[1]);
|
||||
$hausnummer_name = trim($m[2]);
|
||||
if (array_key_exists(3, $m)) {
|
||||
|
||||
Reference in New Issue
Block a user