Files
thetool/application/FiberPlanDispatcher/FiberPlanDispatcherController.php
Spitzer Daniel f2ac8e9d70 Faserplanung
* Schächte/Verteiler
2024-04-16 16:42:27 +02:00

182 lines
5.8 KiB
PHP

<?php
class FiberPlanDispatcherController extends mfBaseController
{
protected function init()
{
$this->needlogin = true;
$me = new User();
$me->loadMe();
$this->me = $me;
$this->layout()->set("me", $me);
if (!$me->is(["Admin"])) {
$this->redirect("Dashboard");
}
}
protected function indexAction()
{
$this->layout()->setTemplate("FiberPlanDispatcher/Index");
$fiberplandispatchers = FiberPlanDispatcherModel::getAll();
$this->layout()->set("fiberplandispatchers", $fiberplandispatchers);
}
protected function addAction()
{
$this->layout()->setTemplate("FiberPlanDispatcher/Form");
$networks = NetworkModel::getAll();
$this->layout()->set("networks", $networks);
$networkaddresses = NetworkAddressModel::getAll();
$this->layout()->set("networkaddresses", $networkaddresses);
}
protected function editAction()
{
$id = $this->request->id;
if (!is_numeric($id) || !$id) {
$this->layout()->setFlash("Verteiler/Schacht nicht gefunden", "error");
$this->redirect("FiberPlanDispatcher");
}
$fiberplandispatchers = new FiberPlanDispatcher($id);
if ($fiberplandispatchers->id != $id) {
$this->layout()->setFlash("Verteiler/Schacht nicht gefunden", "error");
$this->redirect("FiberPlanDispatcher");
}
$this->layout()->set("fiberplandispatchers", $fiberplandispatchers);
if ($fiberplandispatchers->object_type == "2") {
$sleeves = FiberPlanDispatchersleeveModel::getAllbyDispatcher($id);
$this->layout()->set("sleeves", $sleeves);
}
return $this->addAction();
}
protected function saveAction()
{
$r = $this->request;
$id = $r->id;
//var_dump($r->get());exit;
if (is_numeric($id) && $id > 0) {
$mode = "edit";
$fiberplandispatcher = new FiberPlanDispatcher($id);
if (!$fiberplandispatcher->id) {
$this->layout()->setFlash("Verteiler/Schacht nicht gefunden", "error");
$this->redirect("FiberPlanDispatcher");
}
} else {
$mode = "add";
}
$data = [];
$data['network_id'] = trim($r->network_id);
$data['object_type'] = trim($r->object_type);
$data['description'] = trim($r->description);
if ($r->type) {
$data['type'] = trim($r->type);
}
if ($r->gps_lat) {
$data['gps_lat'] = trim($r->gps_lat);
}
if ($r->gps_long) {
$data['gps_long'] = trim($r->gps_long);
}
if ($r->comment) {
$data['comment'] = trim($r->comment);
}
if (!$data['network_id']) {
$this->layout()->setFlash("Netzgebiet darf nicht leer sein", "error");
$this->redirect("FiberPlanDispatcher");
}
if (!$data['object_type']) {
$this->layout()->setFlash("Objekt Typ darf nicht leer sein", "error");
$this->redirect("FiberPlanDispatcher");
}
if (!$data['description']) {
$this->layout()->setFlash("Beschreibung darf nicht leer sein", "error");
$this->redirect("FiberPlanDispatcher");
}
// var_dump($_FILES);
// var_dump($upload);
// exit;
if ($mode == "edit") {
$fiberplandispatcher->update($data);
} else {
$fiberplandispatcher = FiberPlanDispatcherModel::create($data);
}
// var_dump($filestore);
// exit;
$id = $fiberplandispatcher->save();
if ($mode == "edit") {
if ($data['object_type'] == "2") {
FiberPlanDispatchersleeveModel::deletebyDispatcher($id);
$sleeves = $r->sleeves;
$sleevedata = [];
if (is_array($sleeves)) {
foreach ($sleeves as $sleeve) {
$sleevedata['name'] = trim($sleeve);
$sleevedata['fiberPlanDispatcher_id'] = $id;
$fiberplandispatchersleeve = FiberPlanDispatchersleeveModel::create($sleevedata);
$fiberplandispatchersleeve->save();
}
}
}
} else {
if ($data['object_type'] == "2") {
$sleeves = $r->sleeves;
$sleevedata = [];
if (is_array($sleeves)) {
foreach ($sleeves as $sleeve) {
$sleevedata['name'] = trim($sleeve);
$sleevedata['fiberPlanDispatcher_id'] = $id;
$fiberplandispatchersleeve = FiberPlanDispatchersleeveModel::create($sleevedata);
$fiberplandispatchersleeve->save();
}
}
}
}
if (!$id) {
$this->layout()->setFlash("Verteiler/Schacht konnte nicht angelegt werden", "error");
$this->redirect("FiberPlanDispatcher");
}
if ($mode == "edit") {
$this->layout()->setFlash("Verteiler/Schacht erfolgreich geändert", "success");
} else if ($mode = "add") {
$this->layout()->setFlash("Verteiler/Schacht erfolgreich angelegt", "success");
}
$this->redirect("FiberPlanDispatcher");
}
protected function deleteAction()
{
$id = $this->request->id;
$fiberplandispatcher = new FiberPlanDispatcher($id);
if (!$fiberplandispatcher->id || $fiberplandispatcher->id != $id) {
$this->layout()->setFlash("Verteiler/Schacht nicht gefunden.", "error");
$this->redirect("FiberPlanDispatcher");
}
$fiberplandispatcher->delete();
$this->redirect("FiberPlanDispatcher");
}
}