Files
thetool/application/Poprackmodule/PoprackmoduleController.php
Daniel Spitzer 4ef8e733a3 Poprack
Features:

* Komplettes kabelmanagement auf Rack He Modul Basis
2025-10-12 12:19:54 +02:00

149 lines
4.6 KiB
PHP

<?php
class PoprackmoduleController extends mfBaseController
{
protected function apiAction()
{
$do = $this->request->do;
$data = [];
switch ($do) {
case "addModule":
$return = $this->addModule();
break;
case "removeModule":
$return = $this->removeModule();
break;
case "updateModule":
$return = $this->updateModule();
break;
default:
$return = false;
}
if (!is_array($return) || !count($return)) {
$data = ["status" => "error"];
$this->returnJson($data);
}
$data['status'] = "OK";
$data['result'] = $return;
$this->returnJson($data);
}
private function addModule()
{
$ports = 0;
$r = $this->request;
$id = $r->id;
$data = [];
$data['poprack_id'] = $r->poprack_id;
$data['type'] = $r->type;
if ($data['type'] == 0) {
$data['ports'] = ($r->ports) ? $r->ports : null;
$ports = $data['ports'];
$data['plug'] = ($r->plug) ? $r->plug : null;
}
if ($data['type'] == 1) {
$data['device_id'] = ($r->device_id) ? $r->device_id : null;
}
$data['name'] = ($r->name) ? $r->name : null;
$data['start_he'] = $r->start_he;
$data['end_he'] = $r->end_he;
$data['width'] = $r->width;
$data['position'] = ($r->position) ? $r->position : null;
$data['side'] = ($r->side) ? $r->side : 'front';
$data['status'] = ($r->status) ? $r->status : 'productive';
$poprackmodule = PoprackmoduleModel::create($data);
$new_id = $poprackmodule->save();
// var_dump($r);die();
if (!$new_id) {
$response['success'] = false;
} else {
$response['success'] = true;
if ($data['type'] == 0) {
unset($data);
$data = [];
$data['poprackmodule_id'] = $new_id;
for ($i = 1; $i <= $ports; $i++) {
$data['port'] = $i;
$poprackmodulepatch = PoprackmodulepatchModel::create($data);
$poprackmodulepatch->save();
}
}
}
echo json_encode($response);
exit;
}
private function updateModule()
{
$r = $this->request;
$id = $r->id;
if (is_numeric($id) && $id > 0) {
$poprackmodule = new Poprackmodule($id);
if (!$poprackmodule->id) {
$response['success'] = false;
echo json_encode($response);
exit;
die();
}
}
$data = [];
if ($r->type == 0) {
$data['ports'] = ($r->ports) ? $r->ports : null;
$data['plug'] = ($r->plug) ? $r->plug : null;
$poprackmodulepatchcounter = PoprackmodulepatchModel::countAllModule($id);
if ($poprackmodulepatchcounter > $data['ports']) {
for ($i = $poprackmodulepatchcounter; $i > $data['ports']; $i--) {
PoprackmodulepatchModel::deletebyPort($id, $i);
}
} else if ($poprackmodulepatchcounter < $data['ports']) {
$datapatchModel = [];
for ($i = $poprackmodulepatchcounter + 1; $i <= $data['ports']; $i++) {
$datapatchModel['poprackmodule_id'] = $id;
$datapatchModel['port'] = $i;
$poprackmodulepatch = PoprackmodulepatchModel::create($datapatchModel);
$poprackmodulepatch->save();
}
}
} else {
$data['ports'] = null;
$data['plug'] = null;
}
if (is_numeric($r->type)) {
$data['type'] = $r->type;
}
$data['name'] = ($r->name);
$data['status'] = ($r->status);
$poprackmodule->update($data);
$new_id = $poprackmodule->save();
if (!$new_id) {
$response['success'] = false;
} else {
$response['success'] = true;
}
echo json_encode($response);
exit;
}
private function removeModule()
{
$id = $this->request->id;
$poprackmodule = new Poprackmodule($id);
if (!$poprackmodule->id || $poprackmodule->id != $id) {
$response['success'] = false;
} else {
$poprackmodule->delete();
$response['success'] = true;
}
echo json_encode($response);
exit;
}
}