From af3a97032be0099e31a94a12e20a28ee7218a1ae Mon Sep 17 00:00:00 2001 From: Frank Schubert Date: Wed, 17 Jul 2024 18:10:15 +0200 Subject: [PATCH] Added PreorderStatusflag tables and classes --- .../PreorderStatusflag/PreorderStatusflag.php | 5 + .../PreorderStatusflagModel.php | 133 +++++++++++++++ .../PreorderStatusflagValue.php | 5 + .../PreorderStatusflagValueModel.php | 152 ++++++++++++++++++ ...40717144237_create_preorderstatus_flag.php | 86 ++++++++++ 5 files changed, 381 insertions(+) create mode 100644 application/PreorderStatusflag/PreorderStatusflag.php create mode 100644 application/PreorderStatusflag/PreorderStatusflagModel.php create mode 100644 application/PreorderStatusflagValue/PreorderStatusflagValue.php create mode 100644 application/PreorderStatusflagValue/PreorderStatusflagValueModel.php create mode 100644 db/migrations/20240717144237_create_preorderstatus_flag.php diff --git a/application/PreorderStatusflag/PreorderStatusflag.php b/application/PreorderStatusflag/PreorderStatusflag.php new file mode 100644 index 000000000..a57a2cfaa --- /dev/null +++ b/application/PreorderStatusflag/PreorderStatusflag.php @@ -0,0 +1,5 @@ + $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(); + + $where = self::getSqlFilter($filter); + $res = $db->select("PreorderStatusflag", "*", "$where ORDER BY code LIMIT 1"); + if ($db->num_rows($res)) { + $data = $db->fetch_object($res); + $item = new PreorderStatusflag($data); + if ($item->id) { + return $item; + } else { + return null; + } + } + return null; + } + + public static function getAll() { + $items = []; + + $db = FronkDB::singleton(); + + $res = $db->select("PreorderStatusflag", "*", "1=1 ORDER BY code"); + if ($db->num_rows($res)) { + while ($data = $db->fetch_object($res)) { + $items[] = new PreorderStatusflag($data); + } + } + return $items; + } + + public static function count($filter) { + $db = FronkDB::singleton(); + + $where = self::getSqlFilter($filter); + $sql = "SELECT COUNT(*) as cnt FROM PreorderStatusflag + 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(); + + $where = self::getSqlFilter($filter); + $sql = "SELECT * FROM PreorderStatusflag + WHERE $where + ORDER BY code"; + + 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 PreorderStatusflag($data); + } + } + return $items; + } + + private static function getSqlFilter($filter) { + $where = "1=1 "; + + if (array_key_exists("code", $filter)) { + $code = $filter['code']; + if (is_numeric($code)) { + $where .= " AND PreorderStatusflag.code=$code"; + } + } + + if (array_key_exists("create_by", $filter)) { + $create_by = $filter['create_by']; + if (is_numeric($create_by)) { + $where .= " AND PreorderStatusflag.create_by=$create_by"; + } + } + + return $where; + } + +} diff --git a/application/PreorderStatusflagValue/PreorderStatusflagValue.php b/application/PreorderStatusflagValue/PreorderStatusflagValue.php new file mode 100644 index 000000000..67f739735 --- /dev/null +++ b/application/PreorderStatusflagValue/PreorderStatusflagValue.php @@ -0,0 +1,5 @@ + $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(); + + $where = self::getSqlFilter($filter); + $res = $db->select("PreorderStatusflagValue", "*", "$where ORDER BY statusflag_id LIMIT 1"); + if ($db->num_rows($res)) { + $data = $db->fetch_object($res); + $item = new PreorderStatusflagValue($data); + if ($item->id) { + return $item; + } else { + return null; + } + } + return null; + } + + public static function getAll() { + $items = []; + + $db = FronkDB::singleton(); + + $res = $db->select("PreorderStatusflagValue", "*", "1=1 ORDER BY statusflag_id"); + if ($db->num_rows($res)) { + while ($data = $db->fetch_object($res)) { + $items[] = new PreorderStatusflagValue($data); + } + } + return $items; + } + + public static function count($filter) { + $db = FronkDB::singleton(); + + $where = self::getSqlFilter($filter); + $sql = "SELECT COUNT(*) as cnt FROM PreorderStatusflagValue + 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(); + + $where = self::getSqlFilter($filter); + $sql = "SELECT * FROM PreorderStatusflagValue + WHERE $where + ORDER BY statusflag_id"; + + 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 PreorderStatusflagValue($data); + } + } + return $items; + } + + private static function getSqlFilter($filter) { + $where = "1=1 "; + + + + if (array_key_exists("preorder_id", $filter)) { + $preorder_id = $filter['preorder_id']; + if (is_numeric($preorder_id)) { + $where .= " AND PreorderStatusflagValue.preorder_id=$preorder_id"; + } + } + + if (array_key_exists("flag_id", $filter)) { + $flag_id = $filter['flag_id']; + if (is_numeric($flag_id)) { + $where .= " AND PreorderStatusflagValue.flag_id=$flag_id"; + } + } + + if (array_key_exists("value", $filter)) { + $value = $filter['value']; + if (is_numeric($value)) { + $where .= " AND PreorderStatusflagValue.value=$value"; + } + } + + + if (array_key_exists("create_by", $filter)) { + $create_by = $filter['create_by']; + if (is_numeric($create_by)) { + $where .= " AND PreorderStatusflagValue.create_by=$create_by"; + } + } + + return $where; + } + +} diff --git a/db/migrations/20240717144237_create_preorderstatus_flag.php b/db/migrations/20240717144237_create_preorderstatus_flag.php new file mode 100644 index 000000000..d77ab98d3 --- /dev/null +++ b/db/migrations/20240717144237_create_preorderstatus_flag.php @@ -0,0 +1,86 @@ +getEnvironment() == "thetool") { + $psf = $this->table("PreorderStatusflag"); + $psf->addColumn("code", "integer", ["null" => false]); + $psf->addColumn("name", "string", ["null" => false, "limit" => 64]); + $psf->addColumn("connection_type", "enum", ["null" => false, "values" => "all,single,multi", "default" => "all"]); + $psf->addColumn("create_by", "integer", ["null" => false]); + $psf->addColumn("edit_by", "integer", ["null" => false]); + $psf->addColumn("create", "integer", ["null" => false]); + $psf->addColumn("edit", "integer", ["null" => false]); + $psf->create(); + + $psf->insert([ + [ + "code" => 145, + "name" => "Installation kit picked up or shipped", + "connection_type" => "all", + "create_by" => 1, + "edit_by" => 1, + "create" => date("U"), + "edit" => date("U") + ], + [ + "code" => 150, + "name" => "Borderpoint connected", + "connection_type" => "all", + "create_by" => 1, + "edit_by" => 1, + "create" => date("U"), + "edit" => date("U") + ], + [ + "code" => 200, + "name" => "Conduit in building", + "connection_type" => "all", + "create_by" => 1, + "edit_by" => 1, + "create" => date("U"), + "edit" => date("U") + ], + [ + "code" => 242, + "name" => "Inhouse cabeling finished", + "connection_type" => "all", + "create_by" => 1, + "edit_by" => 1, + "create" => date("U"), + "edit" => date("U") + ], + ])->save(); + + $psfv = $this->table("PreorderStatusflagValue"); + $psfv->addColumn("flag_id", "integer", ["null" => false]); + $psfv->addColumn("value", "integer", ["null" => false]); + $psfv->addColumn("create_by", "integer", ["null" => false]); + $psfv->addColumn("edit_by", "integer", ["null" => false]); + $psfv->addColumn("create", "integer", ["null" => false]); + $psfv->addColumn("edit", "integer", ["null" => false]); + $psfv->save(); + } + + if($this->getEnvironment() == "addressdb") { + + } + } + + public function down(): void + { + if($this->getEnvironment() == "thetool") { + $this->table("PreorderStatusflagValue")->drop()->save(); + $this->table("PreorderStatusflag")->drop()->save(); + } + + if($this->getEnvironment() == "addressdb") { + + } + } +}