Hausnummer Frigabe is own table now
This commit is contained in:
@@ -102,6 +102,7 @@
|
|||||||
<option value="interest" <?=(is_array($campaign->types) && array_key_exists("interest", $campaign->types)) ? "selected='selected'" : ""?>><?=__("interest", "preorder")?></option>
|
<option value="interest" <?=(is_array($campaign->types) && array_key_exists("interest", $campaign->types)) ? "selected='selected'" : ""?>><?=__("interest", "preorder")?></option>
|
||||||
<option value="provision" <?=(is_array($campaign->types) && array_key_exists("provision", $campaign->types)) ? "selected='selected'" : ""?>><?=__("provision", "preorder")?></option>
|
<option value="provision" <?=(is_array($campaign->types) && array_key_exists("provision", $campaign->types)) ? "selected='selected'" : ""?>><?=__("provision", "preorder")?></option>
|
||||||
<option value="order" <?=(is_array($campaign->types) && array_key_exists("order", $campaign->types)) ? "selected='selected'" : "netowner"?>><?=__("order", "preorder")?></option>
|
<option value="order" <?=(is_array($campaign->types) && array_key_exists("order", $campaign->types)) ? "selected='selected'" : "netowner"?>><?=__("order", "preorder")?></option>
|
||||||
|
<option value="reorder" <?=(is_array($campaign->types) && array_key_exists("reorder", $campaign->types)) ? "selected='selected'" : "netowner"?>><?=__("reorder", "preorder")?></option>
|
||||||
</select>
|
</select>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|||||||
@@ -3,6 +3,7 @@
|
|||||||
class ADBHausnummer extends mfBaseModel {
|
class ADBHausnummer extends mfBaseModel {
|
||||||
private $strasse;
|
private $strasse;
|
||||||
private $plz;
|
private $plz;
|
||||||
|
private $freigabe = [];
|
||||||
|
|
||||||
protected function init() {
|
protected function init() {
|
||||||
$this->db = FronkDB::singleton(ADDRESSDB_DBHOST, ADDRESSDB_DBUSER, ADDRESSDB_DBPASS, ADDRESSDB_DBNAME);
|
$this->db = FronkDB::singleton(ADDRESSDB_DBHOST, ADDRESSDB_DBUSER, ADDRESSDB_DBPASS, ADDRESSDB_DBNAME);
|
||||||
@@ -42,6 +43,13 @@ class ADBHausnummer extends mfBaseModel {
|
|||||||
public function getProperty($name) {
|
public function getProperty($name) {
|
||||||
if($this->$name == null) {
|
if($this->$name == null) {
|
||||||
|
|
||||||
|
if($name == "freigabe") {
|
||||||
|
foreach(ADBHausnummerFreigabeModel::search(['hausnummer_id' => $this->id]) as $hf) {
|
||||||
|
$this->freigabe[] = $hf->freigabe;
|
||||||
|
}
|
||||||
|
return $this->freigabe;
|
||||||
|
}
|
||||||
|
|
||||||
if($name == "strasse") {
|
if($name == "strasse") {
|
||||||
$this->strasse = new ADBStrasse($this->strasse_id);
|
$this->strasse = new ADBStrasse($this->strasse_id);
|
||||||
return $this->strasse;
|
return $this->strasse;
|
||||||
|
|||||||
10
application/ADBHausnummerFreigabe/ADBHausnummerFreigabe.php
Normal file
10
application/ADBHausnummerFreigabe/ADBHausnummerFreigabe.php
Normal file
@@ -0,0 +1,10 @@
|
|||||||
|
<?php
|
||||||
|
|
||||||
|
class ADBHausnummerFreigabe extends mfBaseModel {
|
||||||
|
|
||||||
|
protected function init() {
|
||||||
|
$this->db = FronkDB::singleton(ADDRESSDB_DBHOST, ADDRESSDB_DBUSER, ADDRESSDB_DBPASS, ADDRESSDB_DBNAME);
|
||||||
|
$this->table = "HausnummerFreigabe";
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
145
application/ADBHausnummerFreigabe/ADBHausnummerFreigabeModel.php
Normal file
145
application/ADBHausnummerFreigabe/ADBHausnummerFreigabeModel.php
Normal file
@@ -0,0 +1,145 @@
|
|||||||
|
<?php
|
||||||
|
|
||||||
|
class ADBHausnummerFreigabeModel {
|
||||||
|
public $hausnummer_id;
|
||||||
|
public $freigabe;
|
||||||
|
|
||||||
|
public $create = null;
|
||||||
|
public $edit = null;
|
||||||
|
|
||||||
|
public static function create(Array $data) {
|
||||||
|
$model = new ADBHausnummerFreigabe();
|
||||||
|
|
||||||
|
foreach($data as $field => $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 getFirst($filter) {
|
||||||
|
$db = FronkDB::singleton(ADDRESSDB_DBHOST, ADDRESSDB_DBUSER, ADDRESSDB_DBPASS, ADDRESSDB_DBNAME);
|
||||||
|
|
||||||
|
$where = self::getSqlFilter($filter);
|
||||||
|
mfLoghandler::singleton()->debug($where);
|
||||||
|
$res = $db->select("HausnummerFreigabe", "*", "$where ORDER BY hausnummer_id,freigabe LIMIT 1");
|
||||||
|
if($db->num_rows($res)) {
|
||||||
|
$data = $db->fetch_object($res);
|
||||||
|
$item = new ADBHausnummerFreigabe($data);
|
||||||
|
if($item->id) {
|
||||||
|
return $item;
|
||||||
|
} else {
|
||||||
|
return null;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return null;
|
||||||
|
}
|
||||||
|
|
||||||
|
public static function getAll() {
|
||||||
|
$items = [];
|
||||||
|
|
||||||
|
$db = FronkDB::singleton(ADDRESSDB_DBHOST, ADDRESSDB_DBUSER, ADDRESSDB_DBPASS, ADDRESSDB_DBNAME);
|
||||||
|
|
||||||
|
$res = $db->select("HausnummerFreigabe", "*", "1=1 ORDER BY hausnummer_id,freigabe");
|
||||||
|
if($db->num_rows($res)) {
|
||||||
|
while($data = $db->fetch_object($res)) {
|
||||||
|
$items[] = new ADBHausnummerFreigabe($data);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return $items;
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
public static function count($filter) {
|
||||||
|
$db = FronkDB::singleton(ADDRESSDB_DBHOST, ADDRESSDB_DBUSER, ADDRESSDB_DBPASS, ADDRESSDB_DBNAME);
|
||||||
|
|
||||||
|
$where = self::getSqlFilter($filter);
|
||||||
|
$sql = "SELECT COUNT(*) as cnt FROM HausnummerFreigabe
|
||||||
|
WHERE $where
|
||||||
|
";
|
||||||
|
|
||||||
|
$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(ADDRESSDB_DBHOST, ADDRESSDB_DBUSER, ADDRESSDB_DBPASS, ADDRESSDB_DBNAME);
|
||||||
|
|
||||||
|
$where = self::getSqlFilter($filter);
|
||||||
|
$sql = "SELECT HausnummerFreigabe.* FROM HausnummerFreigabe
|
||||||
|
WHERE $where
|
||||||
|
ORDER BY hausnummer_id,freigabe";
|
||||||
|
|
||||||
|
mfLoghandler::singleton()->debug($sql);
|
||||||
|
if(is_array($limit) && count($limit)) {
|
||||||
|
if(is_numeric($limit['start']) && is_numeric($limit['count'])) {
|
||||||
|
$sql .= " LIMIT ".$limit['start'].", ".$limit['count'];
|
||||||
|
} elseif(is_numeric($limit['count'])) {
|
||||||
|
$sql .= " LIMIT ".$limit['count'];
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
$res = $db->query($sql);
|
||||||
|
if($db->num_rows($res)) {
|
||||||
|
while($data = $db->fetch_object($res)) {
|
||||||
|
$items[] = new ADBHausnummerFreigabe($data);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return $items;
|
||||||
|
}
|
||||||
|
|
||||||
|
private static function getSqlFilter($filter) {
|
||||||
|
$where = "1=1 ";
|
||||||
|
|
||||||
|
if(array_key_exists("extref", $filter)) {
|
||||||
|
$extref = FronkDB::singleton()->escape($filter['extref']);
|
||||||
|
if($extref) {
|
||||||
|
$where .= " AND HausnummerFreigabe.`extref` = '$extref'";
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
if(array_key_exists("hausnummer_id", $filter)) {
|
||||||
|
$hausnummer_id = $filter['hausnummer_id'];
|
||||||
|
if(is_numeric($hausnummer_id)) {
|
||||||
|
$where .= " AND HausnummerFreigabe.hausnummer_id=$hausnummer_id";
|
||||||
|
} elseif(is_array($hausnummer_id) && count($hausnummer_id)) {
|
||||||
|
$where .= " AND HausnummerFreigabe.hausnummer_id IN (". implode(",", $hausnummer_id).")";
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
if(array_key_exists("freigabe", $filter)) {
|
||||||
|
$freigabe = FronkDB::singleton()->escape($filter['freigabe']);
|
||||||
|
if($freigabe) {
|
||||||
|
$where .= " AND HausnummerFreigabe.`freigabe` = '$freigabe'";
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
//var_dump($filter, $where);exit;
|
||||||
|
return $where;
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
@@ -210,22 +210,23 @@ class AddressdbApicontroller extends mfBaseApicontroller {
|
|||||||
$sql = "SELECT * FROM view_wohneinheit WHERE $where ORDER BY plz, gemeinde, ortschaft, strasse, LENGTH(hausnummer), hausnummer, block, stiege, stock, LENGTH(tuer), tuer";
|
$sql = "SELECT * FROM view_wohneinheit WHERE $where ORDER BY plz, gemeinde, ortschaft, strasse, LENGTH(hausnummer), hausnummer, block, stiege, stock, LENGTH(tuer), tuer";
|
||||||
$res = $this->db()->query($sql);
|
$res = $this->db()->query($sql);
|
||||||
|
|
||||||
|
$hausnummer_cache = [];
|
||||||
|
|
||||||
if($this->db()->num_rows($res)) {
|
if($this->db()->num_rows($res)) {
|
||||||
while($data = $this->db()->fetch_object($res)) {
|
while($data = $this->db()->fetch_object($res)) {
|
||||||
|
if(array_key_exists($data->hausnummer_id,$hausnummer_cache)) {
|
||||||
|
$hausnummer = $hausnummer_cache[$data->hausnummer_id];
|
||||||
|
} else {
|
||||||
|
$hausnummer = new ADBHausnummer($data->hausnummer_id);
|
||||||
|
$hausnummer_cache[$data->hausnummer_id] = $hausnummer;
|
||||||
|
}
|
||||||
|
if(!$hausnummer->id) continue;
|
||||||
|
|
||||||
$ptypes = [];
|
$ptypes = [];
|
||||||
switch($data->freigabe) {
|
foreach($hausnummer->freigabe as $freigabe) {
|
||||||
case "voll":
|
if(in_array($freigabe, $this->allowed_preordertypes)) {
|
||||||
if(in_array("order", $this->allowed_preordertypes)) {
|
$ptypes[] = $freigabe;
|
||||||
$ptypes[] = "order";
|
}
|
||||||
}
|
|
||||||
case "vorsorge":
|
|
||||||
if(in_array("provision", $this->allowed_preordertypes)) {
|
|
||||||
$ptypes[] = "provision";
|
|
||||||
}
|
|
||||||
case "interesse":
|
|
||||||
if(in_array("interest", $this->allowed_preordertypes)) {
|
|
||||||
$ptypes[] = "interest";
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
$addresses[] = [
|
$addresses[] = [
|
||||||
@@ -240,6 +241,7 @@ class AddressdbApicontroller extends mfBaseApicontroller {
|
|||||||
'zusatz' => $data->zusatz,
|
'zusatz' => $data->zusatz,
|
||||||
'gps_lat' => $data->gps_lat,
|
'gps_lat' => $data->gps_lat,
|
||||||
'gps_long' => $data->gps_long,
|
'gps_long' => $data->gps_long,
|
||||||
|
'rollout_year' => ($data->rollout) ? (int)$data->rollout : null,
|
||||||
'preorderTypes' => $ptypes
|
'preorderTypes' => $ptypes
|
||||||
];
|
];
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -61,7 +61,7 @@ class PreorderApicontroller extends mfBaseApicontroller {
|
|||||||
}
|
}
|
||||||
|
|
||||||
$type = $this->post['preorderType'];
|
$type = $this->post['preorderType'];
|
||||||
if($type != "interest" && $type != "provision" && $type != "order") {
|
if($type != "interest" && $type != "provision" && $type != "order" && $type != "reorder") {
|
||||||
return mfResponse::BadRequest(["message" => "Invalid preorderType"]);
|
return mfResponse::BadRequest(["message" => "Invalid preorderType"]);
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -137,6 +137,7 @@ class PreorderApicontroller extends mfBaseApicontroller {
|
|||||||
/*
|
/*
|
||||||
* search address in AddressDB
|
* search address in AddressDB
|
||||||
*/
|
*/
|
||||||
|
$where = "1=1 ";
|
||||||
foreach($address_search as $field => $value) {
|
foreach($address_search as $field => $value) {
|
||||||
$where .= " AND `$field` = '$value'";
|
$where .= " AND `$field` = '$value'";
|
||||||
}
|
}
|
||||||
@@ -146,7 +147,7 @@ class PreorderApicontroller extends mfBaseApicontroller {
|
|||||||
$where .= " AND netzgebiet_id IN (".implode(',', $this->filter_salescluster_ids).")";
|
$where .= " AND netzgebiet_id IN (".implode(',', $this->filter_salescluster_ids).")";
|
||||||
}
|
}
|
||||||
|
|
||||||
$sql = "SELECT * FROM view_hausnummer WHERE 1=1 $where";
|
$sql = "SELECT * FROM view_hausnummer WHERE $where";
|
||||||
$res = $this->db()->query($sql);
|
$res = $this->db()->query($sql);
|
||||||
if(!$this->db()->num_rows($res)) {
|
if(!$this->db()->num_rows($res)) {
|
||||||
//var_dump($this->db()->num_rows($res), $this->db()->fetch_object($res));
|
//var_dump($this->db()->num_rows($res), $this->db()->fetch_object($res));
|
||||||
@@ -279,6 +280,13 @@ class PreorderApicontroller extends mfBaseApicontroller {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if($customer->type == "tenant") {
|
||||||
|
$preorder_data['contact_type'] = "tenant";
|
||||||
|
} elseif($customer->type == "owner") {
|
||||||
|
$preorder_data['contact_type'] = "owner";
|
||||||
|
} else {
|
||||||
|
return mfResponse::BadRequest(["message" => "customer type must be 'tenant' or 'owner'"]);
|
||||||
|
}
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* create preorder record
|
* create preorder record
|
||||||
|
|||||||
@@ -25,6 +25,7 @@ class PreorderModel {
|
|||||||
public $accept_dsgvo;
|
public $accept_dsgvo;
|
||||||
public $accept_marketing;
|
public $accept_marketing;
|
||||||
public $accept_withdrawal;
|
public $accept_withdrawal;
|
||||||
|
public $contact_type;
|
||||||
public $company;
|
public $company;
|
||||||
public $uid;
|
public $uid;
|
||||||
public $firstname;
|
public $firstname;
|
||||||
|
|||||||
@@ -13,7 +13,7 @@ class Preordercampaign extends mfBaseModel {
|
|||||||
|
|
||||||
|
|
||||||
public function addTypes(Array $types) {
|
public function addTypes(Array $types) {
|
||||||
$allowd_types = ["interest","provision","order"];
|
$allowd_types = ["interest","provision","order","reorder"];
|
||||||
|
|
||||||
$new_types = [];
|
$new_types = [];
|
||||||
|
|
||||||
|
|||||||
@@ -42,5 +42,6 @@ $l['sipit'] = "SCA (sipit)";
|
|||||||
$l['preorder.interest'] = "Interessenbekundung";
|
$l['preorder.interest'] = "Interessenbekundung";
|
||||||
$l['preorder.provision'] = "Vorsorgeanschluss";
|
$l['preorder.provision'] = "Vorsorgeanschluss";
|
||||||
$l['preorder.order'] = "Vollanschluss";
|
$l['preorder.order'] = "Vollanschluss";
|
||||||
|
$l['preorder.reorder'] = "Nachbestellung";
|
||||||
|
|
||||||
$lang['de'] = $l;
|
$lang['de'] = $l;
|
||||||
29
scripts/addressdb/add_freigabe.php
Executable file
29
scripts/addressdb/add_freigabe.php
Executable file
@@ -0,0 +1,29 @@
|
|||||||
|
#!/usr/bin/php
|
||||||
|
<?php
|
||||||
|
|
||||||
|
//require 'vendor/autoload.php';
|
||||||
|
require("../../config/config.php");
|
||||||
|
|
||||||
|
define('FRONKDB_SQLDEBUG',false);
|
||||||
|
error_reporting(E_ALL & ~(E_NOTICE | E_STRICT | E_DEPRECATED));
|
||||||
|
|
||||||
|
require_once(LIBDIR."/mvcfronk/mfRouter/mfRouter.php");
|
||||||
|
require_once(LIBDIR."/mvcfronk/mfBase/mfBaseModel.php");
|
||||||
|
require_once(LIBDIR."/mvcfronk/mfBase/mfBaseController.php");
|
||||||
|
|
||||||
|
$me = new User(1);
|
||||||
|
|
||||||
|
foreach(ADBHausnummerModel::search(['netzgebiet_id' => [1,2]]) as $hausnummer) {
|
||||||
|
foreach(['interest','provision','order','reorder'] as $type) {
|
||||||
|
$freigabe = ADBHausnummerFreigabeModel::getFirst(['hausnummer_id' => $hausnummer->id, 'freigabe' => $type]);
|
||||||
|
if(!$freigabe) {
|
||||||
|
$freigabe = ADBHausnummerFreigabeModel::create([
|
||||||
|
'hausnummer_id' => $hausnummer->id,
|
||||||
|
'freigabe' => $type
|
||||||
|
]);
|
||||||
|
if(!$freigabe->save()) {
|
||||||
|
die("Error saving HausnummerFreigabe (".$hausnummer->id.", $type)\n");
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
Reference in New Issue
Block a user