Added ProductNetwork

This commit is contained in:
Frank Schubert
2021-07-05 19:46:22 +02:00
parent c06c29530b
commit 110c3fe71d
8 changed files with 196 additions and 8 deletions
+13
View File
@@ -3,10 +3,23 @@
class Product extends mfBaseModel {
private $productgroup;
private $producttech;
private $sla;
private $networks;
public function getProperty($name) {
if($this->$name == null) {
if($name == "networks") {
$this->networks = [];
$productNetworks = ProductNetworkModel::search(['product_id' => $this->id]);
foreach($productNetworks as $pnet) {
$this->networks[$pnet->network_id] = new Network($pnet->network_id);
}
return $this->networks;
}
$classname = ucfirst($name);
$idfield = $name."_id";
$this->$name = new $classname($this->$idfield);
+19
View File
@@ -23,6 +23,7 @@ class ProductController extends mfBaseController {
$this->layout()->set("productgroups", ProductgroupModel::getAll());
$this->layout()->set("producttechs", ProducttechModel::getAll());
$this->layout()->set("slas", SlaModel::getAll());
$this->layout()->set("networks", NetworkModel::getAll());
}
@@ -96,6 +97,24 @@ class ProductController extends mfBaseController {
return $this->add();
}
// delete all networks to save networks
$pnets = ProductNetworkModel::search(['product_id' => $new_id]);
foreach($pnets as $pnet) {
$pnet->delete();
}
if(is_array($r->networks) && count($r->networks)) {
foreach($r->networks as $network_id) {
$network = new Network($network_id);
if(!$network->id) {
// ignore non-existing networks
continue;
}
$pnet = ProductNetworkModel::create(['product_id' => $new_id, 'network_id' => $network_id]);
$pnet->save();
}
}
// create new product group and tech
if($r->productgroup_id == "new") {