0) { $sql->set( "UPDATE floor_patchpanels SET name = ?, floor_id = ?, pos_x = ?, pos_y = ?, width = ?, height = ?, port_count = ?, comment = ? WHERE id = ?", "siiiiisii", [$name, $floorId, $posX, $posY, $width, $height, $portCount, $comment, $id] ); } else { $panelId = (int)$sql->set( "INSERT INTO floor_patchpanels (name, floor_id, pos_x, pos_y, width, height, port_count, comment) VALUES (?, ?, ?, ?, ?, ?, ?, ?)", "siiiiiss", [$name, $floorId, $posX, $posY, $width, $height, $portCount, $comment], true ); } if ($panelId > 0 && $portCount > 0) { $existingCount = (int)($sql->single( "SELECT COUNT(*) AS cnt FROM floor_patchpanel_ports WHERE patchpanel_id = ?", "i", [$panelId] )['cnt'] ?? 0); if ($existingCount < $portCount) { for ($i = $existingCount + 1; $i <= $portCount; $i++) { $sql->set( "INSERT INTO floor_patchpanel_ports (patchpanel_id, name) VALUES (?, ?)", "is", [$panelId, 'Port ' . $i] ); } } } } elseif ($type === 'outlet') { $name = trim($_POST['name'] ?? ''); $roomId = (int)($_POST['room_id'] ?? 0); $x = (int)($_POST['x'] ?? 0); $y = (int)($_POST['y'] ?? 0); $comment = trim($_POST['comment'] ?? ''); $outletId = $id; if ($id > 0) { $sql->set( "UPDATE network_outlets SET name = ?, room_id = ?, x = ?, y = ?, comment = ? WHERE id = ?", "siiisi", [$name, $roomId, $x, $y, $comment, $id] ); } else { $outletId = (int)$sql->set( "INSERT INTO network_outlets (name, room_id, x, y, comment) VALUES (?, ?, ?, ?, ?)", "siiis", [$name, $roomId, $x, $y, $comment], true ); } if ($outletId > 0) { $existingPortCount = (int)($sql->single( "SELECT COUNT(*) AS cnt FROM network_outlet_ports WHERE outlet_id = ?", "i", [$outletId] )['cnt'] ?? 0); if ($existingPortCount === 0) { $sql->set( "INSERT INTO network_outlet_ports (outlet_id, name) VALUES (?, 'Port 1')", "i", [$outletId] ); } } } header('Location: ?module=floor_infrastructure&action=list'); exit;