prepare($query);
$stmt->bind_param("i", $user_id);
$stmt->execute();
$result = $stmt->get_result();
$permissoes = [];
while ($row = $result->fetch_assoc()) {
$permissoes[] = $row['NomePermissao'];
}
return $permissoes;
}
$permissoes = getPermissoes($conn, $user_id);
function carregarOcorrencias($conn, $estadoIDs = [], $userID = 0, $somenteCriados = false) {
$whereClause = "1=1";
$params = [];
$paramTypes = "";
if ($userID !== 0) {
if ($somenteCriados) {
$whereClause .= " AND Ocorrencias.PedidoPor = ?";
$params[] = $userID;
$paramTypes .= "i";
} else {
$whereClause .= " AND (Ocorrencias.PedidoPor = ? OR Ocorrencias.AtribuidoA = ?)";
$params[] = $userID;
$params[] = $userID;
$paramTypes .= "ii";
}
}
if (!empty($estadoIDs)) {
$placeholders = implode(",", array_fill(0, count($estadoIDs), "?"));
$whereClause .= " AND Ocorrencias.Estado IN ($placeholders)";
$params = array_merge($params, $estadoIDs);
$paramTypes .= str_repeat("i", count($estadoIDs));
}
$query = "SELECT
Ocorrencias.OcorrenciaID AS ID,
EstadoOcorrencia.NomeEstado AS Estado,
EstadoOcorrencia.EstadoID AS StatusID,
Locais.NomeLocal AS Local,
Ocorrencias.Imobilizado AS Imobilizado,
Ocorrencias.Equipamento AS Equipamento,
Ocorrencias.Descricao AS Descricao,
DATE_FORMAT(Ocorrencias.DataPedido, '%d-%m-%Y %H:%i') AS Data,
Utilizadores.Nome AS Utilizador
FROM Ocorrencias
INNER JOIN EstadoOcorrencia ON Ocorrencias.Estado = EstadoOcorrencia.EstadoID
INNER JOIN Locais ON Ocorrencias.LocalID = Locais.LocalID
INNER JOIN Utilizadores ON Ocorrencias.PedidoPor = Utilizadores.UserID
WHERE $whereClause
ORDER BY
CASE WHEN EstadoOcorrencia.EstadoID IN (0, 6) THEN 1 ELSE 0 END,
Ocorrencias.DataPedido DESC";
$stmt = $conn->prepare($query);
if ($paramTypes) {
$stmt->bind_param($paramTypes, ...$params);
}
$stmt->execute();
return $stmt->get_result()->fetch_all(MYSQLI_ASSOC);
}
try {
switch ($painel) {
case 'pessoal':
$dados = carregarOcorrencias($conn, [], $user_id, true);
break;
case 'secretaria':
$dados = carregarOcorrencias($conn, [1]);
break;
case 'direcao':
$dados = carregarOcorrencias($conn, [2]);
break;
case 'informatica':
$dados = carregarOcorrencias($conn, [0, 1, 2, 3, 4, 5, 6]);
break;
case 'responsavel':
$dados = carregarOcorrencias($conn, [3, 4, 5], $user_id);
break;
default:
$dados = carregarOcorrencias($conn, [], $user_id);
break;
}
} catch (Exception $e) {
die("Erro ao carregar dados: " . $e->getMessage());
}
?>
Painel SIGMA
= $tituloPainel ?>