diff --git a/Layout/default/PreorderProduct/Form.php b/Layout/default/PreorderProduct/Form.php new file mode 100644 index 000000000..67cfb0251 --- /dev/null +++ b/Layout/default/PreorderProduct/Form.php @@ -0,0 +1,180 @@ + + + +
+

Preorder Product Management

+ +

Create Preorder

+
+
+ + +
+ +
+ +

Create Preorder Product

+
+
+ + +
+
+ + +
+
+ + +
+
+ + +
+
+ + +
+
+ + +
+
+ + +
+
+ + +
+
+ + +
+ +
+ +

Create Preorder Product Price

+
+
+ + +
+
+ + +
+
+ + +
+
+ + +
+
+ + +
+
+ + +
+
+ + +
+
+ + +
+
+ + +
+
+ + +
+
+ + +
+
+ + +
+
+ + +
+
+ + +
+
+ + +
+
+ + +
+ +
+ +

Create Preorder Product Marketshare Discount

+
+
+ + +
+
+ + +
+
+ + +
+
+ + +
+
+ + +
+
+ + +
+
+ + +
+
+ + +
+
+ + +
+
+ + +
+
+ + +
+ +
+
+ + \ No newline at end of file diff --git a/application/PreorderProduct/PreorderProduct.php b/application/PreorderProduct/PreorderProduct.php new file mode 100644 index 000000000..f558929a6 --- /dev/null +++ b/application/PreorderProduct/PreorderProduct.php @@ -0,0 +1,296 @@ +$name == null) { + + if($name == "preorder") { + $preorder = PreorderModel::getFirst(["id" => $this->preorder_id]); + if(!$preorder) { + $this->log->debug(__METHOD__ . ": Preorder " . $this->preorder_id . " not found"); + return null; + } + $this->preorder = $preorder; + return $this->preorder; + } + + if($name == "creator") { + $creator = mfValuecache::singleton()->get("Worker-id-".$this->create_by); + if($creator) { + $this->creator = $creator; + return $this->creator; + } + $this->creator = new User($this->create_by); + + if(!$this->creator->id) { + return null; + } + mfValuecache::singleton()->set("Worker-id-".$this->create_by, $this->creator); + return $this->creator; + } + + if($name == "editor") { + $editor = mfValuecache::singleton()->get("Worker-id-".$this->edit_by); + if($editor) { + $this->editor = $editor; + return $this->editor; + } + $this->editor = new User($this->edit_by); + if(!$this->editor->id) { + return null; + } + mfValuecache::singleton()->set("Worker-id-".$this->edit_by, $this->editor); + return $this->editor; + } + + if($name == "product") { + $product = ProductModel::getFirst(["id" => $this->product_id]); + if(!$product) { + $this->log->debug(__METHOD__ . ": Product " . $this->product_id . " not found"); + return null; + } + $this->product = $product; + return $this->product; + } + } + return parent::getProperty($name); + } + + /******************************** + * Begin static Model functions + */ + + public static function create(Array $data) { + $model = new ConstructionConsent(); + + $table_fields = [ + "type", "name", "vatgroup_id", "price", "price_setup", + "create_by","edit_by","create","edit" + ]; + + foreach($data as $field => $value) { + if(in_array($field, $table_fields)) { + $model->$field = $value; + } + } + + $me = new User(); + $me->loadMe(); + + 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("ConstructionConsent", "*", "1 = 1 ORDER BY adb_hausnummer_id"); + if($db->num_rows($res)) { + while($data = $db->fetch_object($res)) { + $items[] = new ConstructionConsent($data); + } + } + return $items; + + } + + public static function getFirst($filter) { + $db = FronkDB::singleton(); + + $where = self::getSqlFilter($filter); + $sql = "SELECT * FROM ConstructionConsent + WHERE $where + ORDER BY adb_hausnummer_id LIMIT 1"; + //var_dump($sql);exit; + $res = $db->query($sql); + if($db->num_rows($res)) { + $data = $db->fetch_object($res); + $item = new ConstructionConsent($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 ConstructionConsent + LEFT JOIN ".ADDRESSDB_DBNAME.".view_hausnummer ON (ConstructionConsent.adb_hausnummer_id = view_hausnummer.hausnummer_id) + 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, $order = false) { + //var_dump($filter);exit; + $items = []; + + if(!$order) { + $order = "adb_hausnummer_id ASC"; + } + + $db = FronkDB::singleton(); + + $where = self::getSqlFilter($filter); + $sql = "SELECT * FROM ConstructionConsent + LEFT JOIN ".ADDRESSDB_DBNAME.".view_hausnummer ON (ConstructionConsent.adb_hausnummer_id = view_hausnummer.hausnummer_id) + WHERE $where + ORDER BY $order"; + + 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']; + } + } + + mfLoghandler::singleton()->debug($sql); + + $res = $db->query($sql); + if($db->num_rows($res)) { + while($data = $db->fetch_object($res)) { + $items[$data->id] = new ConstructionConsent($data); + } + } + + return $items; + } + + private static function getSqlFilter($filter) { + $where = "1=1 "; + + if(array_key_exists("project_id", $filter)) { + $project_id = $filter['project_id']; + if(is_numeric($project_id)) { + $where .= " AND ConstructionConsent.constructionconsentproject_id=$project_id"; + } + } + + if(array_key_exists("constructionconsentproject_id", $filter)) { + $constructionconsentproject_id = $filter['constructionconsentproject_id']; + if(is_numeric($constructionconsentproject_id)) { + $where .= " AND ConstructionConsent.constructionconsentproject_id=$constructionconsentproject_id"; + } + } + + if(array_key_exists("adb_wohneinheit_id", $filter)) { + $adb_wohneinheit_id = $filter['adb_wohneinheit_id']; + if(is_numeric($adb_wohneinheit_id)) { + $where .= " AND ConstructionConsent.adb_wohneinheit_id=$adb_wohneinheit_id"; + } + } + + if(array_key_exists("termination_id", $filter)) { + $termination_id = $filter['termination_id']; + if(is_numeric($termination_id)) { + $where .= " AND ConstructionConsent.termination_id=$termination_id"; + } + } + + if(array_key_exists("object_type", $filter)) { + $object_type = FronkDB::singleton()->escape($filter["object_type"]); + if($object_type) { + $where .= " AND object_type='$object_type'"; + } + } + + if(array_key_exists("ez", $filter)) { + $ez = FronkDB::singleton()->escape($filter["ez"]); + if($ez) { + $where .= " AND ez='$ez'"; + } + } + + if(array_key_exists("status", $filter)) { + $status = FronkDB::singleton()->escape($filter["status"]); + if($status) { + $where .= " AND status='$status'"; + } + } + + if(array_key_exists("result", $filter)) { + $result = FronkDB::singleton()->escape($filter["result"]); + if($result) { + $where .= " AND result='$result'"; + } + } + + if(array_key_exists("owner_name", $filter)) { + $owner_name = FronkDB::singleton()->escape($filter["owner_name"]); + if($owner_name) { + $where .= " AND owner_name like '%$owner_name%'"; + } + } + + if(array_key_exists("owner_street", $filter)) { + $owner_street = FronkDB::singleton()->escape($filter["owner_street"]); + if($owner_street) { + $where .= " AND owner_street like '%$owner_street%'"; + } + } + + if(array_key_exists("owner_zip", $filter)) { + $owner_zip = FronkDB::singleton()->escape($filter["owner_zip"]); + if($owner_zip) { + $where .= " AND owner_zip like '%$owner_zip%'"; + } + } + + if(array_key_exists("owner_city", $filter)) { + $owner_city = FronkDB::singleton()->escape($filter["owner_city"]); + if($owner_city) { + $where .= " AND owner_city like '%$owner_city%'"; + } + } + + if(array_key_exists("owner_country", $filter)) { + $owner_country = FronkDB::singleton()->escape($filter["owner_country"]); + if($owner_country) { + $where .= " AND owner_country like '%$owner_country%'"; + } + } + + if(array_key_exists("network", $filter)) { + $network = FronkDB::singleton()->escape($filter["network"]); + if($network) { + $where .= " AND view_hausnummer.netzgebiet_id=$network"; + } + } + + + + if(array_key_exists("add-where", $filter)) { + $where .= " ".$filter['add-where']; + } + + //var_dump($filter, $where);exit; + return $where; + } + +} \ No newline at end of file diff --git a/application/PreorderProduct/PreorderProductController.php b/application/PreorderProduct/PreorderProductController.php new file mode 100644 index 000000000..4f519e3f5 --- /dev/null +++ b/application/PreorderProduct/PreorderProductController.php @@ -0,0 +1,22 @@ +needlogin=true; + $me = new User(); + $me->loadMe(); + $this->me = $me; + $this->layout()->set("me",$me); + + if(!$me->is(["Admin", "netowner", "salespartner"]) && !$me->can("Preorder")) { + $this->redirect("Dashboard"); + } + } + + protected function indexAction() { + $this->layout()->setTemplate("PreorderProduct/Index"); + + //$product = + } +} \ No newline at end of file