-
+
-
+
+
+
Metadaten
+
+
+ | Building Name: |
+ =$preorder->adb_hausnummer->extref?>
+ |
+ | Home External ID: |
+ =$preorder->adb_wohneinheit->extref?>
+ |
+
+
+
+
+
FTU
+
+
+ | FTU Name: |
+ =$preorder->adb_wohneinheit->ftu_data["name"]?>
+ |
+ | FTU External ID: |
+ =$preorder->adb_wohneinheit->ftu_data["id"]?>
+ |
+
+
+
+
+
+
+
+
Workorder
+
+
+ | Name |
+ =$preorder->adb_wohneinheit->rimo_workorder->rimo_name?> |
+
+ | External ID |
+ =$preorder->adb_wohneinheit->rimo_workorder->rimo_id?> |
+
+ | Status |
+ =$preorder->adb_wohneinheit->rimo_workorder->rimo_status?> |
+
+ | Erstellt |
+ =($preorder->adb_wohneinheit->rimo_workorder->id) ? date("d.m.Y H:i:s", $preorder->adb_wohneinheit->rimo_workorder->create) : ""?> |
+
+
+
+
+
+
@@ -119,32 +325,6 @@
-
-
-
-
-
diff --git a/application/ADBHausnummer/ADBHausnummer.php b/application/ADBHausnummer/ADBHausnummer.php
index 01dae66c4..5bde0b4d8 100644
--- a/application/ADBHausnummer/ADBHausnummer.php
+++ b/application/ADBHausnummer/ADBHausnummer.php
@@ -6,9 +6,10 @@ class ADBHausnummer extends mfBaseModel {
private $ortschaft;
private $strasse;
private $plz;
+ private $status;
private $freigaben = [];
private $wohneinheiten = [];
-
+
protected function init() {
$this->db = FronkDB::singleton(ADDRESSDB_DBHOST, ADDRESSDB_DBUSER, ADDRESSDB_DBPASS, ADDRESSDB_DBNAME);
$this->table = "Hausnummer";
@@ -126,7 +127,12 @@ class ADBHausnummer extends mfBaseModel {
}
return $this->wohneinheiten;
}
-
+
+ if($name == "status") {
+ $this->status = new ADBStatus($this->status_id);
+ return $this->status;
+ }
+
$classname = ucfirst($name);
$idfield = $name."_id";
$this->$name = new $classname($this->$idfield);
diff --git a/application/ADBStatus/ADBStatus.php b/application/ADBStatus/ADBStatus.php
new file mode 100644
index 000000000..2a39a883c
--- /dev/null
+++ b/application/ADBStatus/ADBStatus.php
@@ -0,0 +1,9 @@
+db = FronkDB::singleton(ADDRESSDB_DBHOST, ADDRESSDB_DBUSER, ADDRESSDB_DBPASS, ADDRESSDB_DBNAME);
+ $this->table = "Status";
+ }
+}
\ No newline at end of file
diff --git a/application/ADBStatus/ADBStatusModel.php b/application/ADBStatus/ADBStatusModel.php
new file mode 100644
index 000000000..172a8748b
--- /dev/null
+++ b/application/ADBStatus/ADBStatusModel.php
@@ -0,0 +1,136 @@
+ $value) {
+ if(property_exists(get_called_class(), $field)) {
+ $model->$field = $value;
+ }
+ }
+
+ $me = mfValuecache::singleton()->get("me");
+ if(!$me) {
+ $me = new User();
+ $me->loadMe();
+ mfValuecache::singleton()->set("me", $me);
+ }
+
+ if($model->create_by === null) {
+ $model->create_by = $me->id;
+ }
+ if($model->edit_by === null) {
+ $model->edit_by = $me->id;
+ }
+
+ return $model;
+ }
+
+
+ public static function getAll() {
+ $items = [];
+
+ $db = FronkDB::singleton();
+
+ $res = $db->select("Status", "*");
+ if($db->num_rows($res)) {
+ while($data = $db->fetch_object($res)) {
+ $items[] = new Status($data);
+ }
+ }
+ return $items;
+
+ }
+
+ public static function getFirst($filter = false) {
+ $db = FronkDB::singleton();
+
+ $where = self::getSqlFilter($filter);
+ $res = $db->select("Status", "*", "$where ORDER BY code, name");
+ if($db->num_rows($res)) {
+ $data = $db->fetch_object($res);
+ $item = new Status($data);
+ if($item->id) {
+ return $item;
+ } else {
+ return null;
+ }
+ }
+ return null;
+ }
+
+ public static function count($filter) {
+ $db = FronkDB::singleton();
+
+ $where = self::getSqlFilter($filter);
+ $sql = "SELECT COUNT(*) as cnt FROM Status
+ WHERE $where
+ ";
+
+ mfLoghandler::singleton()->debug($sql);
+
+ $res = $db->query($sql);
+ if($db->num_rows($res)) {
+ $data = $db->fetch_object($res);
+ return $data->cnt;
+ }
+ return 0;
+ }
+
+ public static function search($filter, $limit = false) {
+ $items = [];
+ $db = FronkDB::singleton();
+
+ $where = self::getSqlFilter($filter);
+
+ $sql = "SELECT * FROM Status
+ WHERE $where
+ ORDER BY code, name
+ ";
+
+ if(is_array($limit) && count($limit)) {
+ if(is_numeric($limit['start']) && is_numeric($limit['count'])) {
+ $sql .= " LIMIT ".$limit['start'].", ".$limit['count'];
+ } elseif(is_numeric($count)) {
+ $sql .= " LIMIT ".$limit['count'];
+ }
+ }
+
+ mfLoghandler::singleton()->debug($sql);
+
+ $res = $db->query($sql);
+ if($db->num_rows($res)) {
+ while($data = $db->fetch_object($res)) {
+ $items[] = new Status($data);
+ }
+ }
+ return $items;
+ }
+
+ private static function getSqlFilter($filter) {
+ $where = "1=1 ";
+
+ //var_dump($filter);exit;
+
+ if(array_key_exists("code", $filter)) {
+ $code = $filter['code'];
+ if(is_numeric($code)) {
+ $where .= " AND code=$code";
+ }
+ }
+
+
+ //var_dump($filter, $where);exit;
+ return $where;
+ }
+
+}
diff --git a/application/ADBWohneinheit/ADBWohneinheit.php b/application/ADBWohneinheit/ADBWohneinheit.php
index 1fd57cacc..8fa0fcf93 100644
--- a/application/ADBWohneinheit/ADBWohneinheit.php
+++ b/application/ADBWohneinheit/ADBWohneinheit.php
@@ -3,7 +3,9 @@
class ADBWohneinheit extends mfBaseModel {
private $hausnummer;
private $rimo_workorder;
-
+ private $ftu_data;
+ private $status;
+
protected function init() {
$this->db = FronkDB::singleton(ADDRESSDB_DBHOST, ADDRESSDB_DBUSER, ADDRESSDB_DBPASS, ADDRESSDB_DBNAME);
$this->table = "Wohneinheit";
@@ -131,37 +133,31 @@ class ADBWohneinheit extends mfBaseModel {
return $code;
}
- public function afterLoad() {
- //$this->hausnummer = new ADBHausnummer($this->hausnummer_id);
- //$this->loadStatus();
- //$this->loadProvider();
+ public function getExternalData() {
+ if(!$this->external_data) return [];
+
+ $extdata = json_decode($this->external_data, true);
+ if(is_array($extdata) && count($extdata)) {
+ return $extdata;
+ }
+ return false;
}
- /*
- public function loadStatus() {
- if(!$this->id) {
+
+ public function getExternalRimoData() {
+ $extdata = $this->getExternalData();
+ if(!is_array($extdata) || !count($extdata)) {
return false;
}
- $status = HausnummerStatus::singleton();
- $this->status = $status->getObject($this->status_id);
- }
-
- public function loadProvider() {
- if(!$this->id) {
- return false;
- }
-
- $res = $this->db->select("HausnummerProvider", "*", "hausnummer_id=".$this->id);
- if($this->db->num_rows($res)) {
- while($data = $this->db->fetch_object($res)) {
- $provider = new Provider($data->provider_id);
- $this->providerlist[$provider->id] = $provider->name;
- $this->providers[] = $provider;
+ //var_dump($extdata);exit;
+ if(array_key_exists("rimo", $extdata) && count($extdata['rimo'])) {
+ $rimo_data = $extdata['rimo'];
+ if(is_array($extdata['rimo']) && count($extdata['rimo'])) {
+ return $rimo_data;
}
}
-
- return true;
- }*/
-
+
+ return false;
+ }
public function getProperty($name) {
if($this->$name == null) {
@@ -175,7 +171,29 @@ class ADBWohneinheit extends mfBaseModel {
$this->rimo_workorder = RimoWorkorderModel::getFirst(['adb_wohneinheit_id' => $this->id]);
return $this->rimo_workorder;
}
-
+
+ if($name == "ftu_data") {
+ $rimo_data = $this->getExternalRimoData();
+
+ if(!is_array($rimo_data) || !count($rimo_data)) {
+ return ['id' => "", 'name' => ""];
+ }
+
+ if(array_key_exists("ftu", $rimo_data)) {
+ $ftu_data = $rimo_data['ftu'];
+ if($ftu_data['id'] || $ftu_data['name']) {
+ $this->ftu_data = $ftu_data;
+ return $this->ftu_data;
+ }
+ }
+ return ['id' => "", 'name' => ""];
+ }
+
+ if($name == "status") {
+ $this->status = new ADBStatus($this->status_id);
+ return $this->status;
+ }
+
$classname = ucfirst($name);
$idfield = $name."_id";
$this->$name = new $classname($this->$idfield);
diff --git a/application/Api/v1/PreorderApicontroller.php b/application/Api/v1/PreorderApicontroller.php
index 5e356378e..388544960 100644
--- a/application/Api/v1/PreorderApicontroller.php
+++ b/application/Api/v1/PreorderApicontroller.php
@@ -464,6 +464,7 @@ class PreorderApicontroller extends mfBaseApicontroller {
$where = "1=1 ";
$unit = false;
+ // We ignore Stock when matching units
$unit_search_count_without_stock = count($unit_search);
if(array_key_exists("stock", $unit_search) && $unit_search['stock']) {
$unit_search_count_without_stock--;
diff --git a/application/Preorder/Preorder.php b/application/Preorder/Preorder.php
index 5d9ec027a..3f4b35794 100644
--- a/application/Preorder/Preorder.php
+++ b/application/Preorder/Preorder.php
@@ -10,6 +10,8 @@ class Preorder extends mfBaseModel {
private $building;
private $adb_hausnummer;
private $adb_wohneinheit;
+ private $services;
+ private $ordered_services;
private $creator;
private $editor;
private $attribute = [];
@@ -314,7 +316,7 @@ class Preorder extends mfBaseModel {
return $a;
}
-
+
public function getProperty($name) {
if($this->$name == null) {
@@ -366,8 +368,35 @@ class Preorder extends mfBaseModel {
return $this->adb_wohneinheit;
}
- if($name == "addon_services") {
-
+ if($name == "services") {
+ if(!$this->addon_services) {
+ return null;
+ }
+ $addon_services = json_decode($this->addon_services);
+ if(json_last_error() === JSON_ERROR_NONE) {
+ $this->services = $addon_services;
+ return $this->services;
+ }
+ return null;
+ }
+
+ if($name == "ordered_services") {
+ if(!$this->addon_services) {
+ return null;
+ }
+ $ordered_services = [];
+ $addon_services = json_decode($this->addon_services);
+ if(json_last_error() === JSON_ERROR_NONE) {
+ foreach($addon_services as $s) {
+ if($s->ordered) {
+ $ordered_services[] = $s;
+ }
+ }
+
+ $this->ordered_services = $ordered_services;
+ return $this->ordered_services;
+ }
+ return null;
}
if($name == "attribute") {
diff --git a/application/Preorderstatus/PreorderstatusModel.php b/application/Preorderstatus/PreorderstatusModel.php
index e2231eaad..01a4fb49d 100644
--- a/application/Preorderstatus/PreorderstatusModel.php
+++ b/application/Preorderstatus/PreorderstatusModel.php
@@ -44,7 +44,7 @@ class PreorderstatusModel {
public static function getAll() {
$items = [];
- $db = FronkDB::singleton();
+ $db = FronkDB::singleton(ADDRESSDB_DBHOST, ADDRESSDB_DBUSER, ADDRESSDB_DBPASS, ADDRESSDB_DBNAME);
$res = $db->select("Preorderstatus", "*");
if($db->num_rows($res)) {
@@ -57,7 +57,7 @@ class PreorderstatusModel {
}
public static function getFirst($filter = false) {
- $db = FronkDB::singleton();
+ $db = FronkDB::singleton(ADDRESSDB_DBHOST, ADDRESSDB_DBUSER, ADDRESSDB_DBPASS, ADDRESSDB_DBNAME);
$where = self::getSqlFilter($filter);
$res = $db->select("Preorderstatus", "*", "$where ORDER BY code, name");
@@ -74,7 +74,7 @@ class PreorderstatusModel {
}
public static function count($filter) {
- $db = FronkDB::singleton();
+ $db = FronkDB::singleton(ADDRESSDB_DBHOST, ADDRESSDB_DBUSER, ADDRESSDB_DBPASS, ADDRESSDB_DBNAME);
$where = self::getSqlFilter($filter);
$sql = "SELECT COUNT(*) as cnt FROM Preorderstatus
@@ -93,7 +93,7 @@ class PreorderstatusModel {
public static function search($filter, $limit = false) {
$items = [];
- $db = FronkDB::singleton();
+ $db = FronkDB::singleton(ADDRESSDB_DBHOST, ADDRESSDB_DBUSER, ADDRESSDB_DBPASS, ADDRESSDB_DBNAME);
$where = self::getSqlFilter($filter);