exec("CREATE TABLE IF NOT EXISTS consultas ( id INT AUTO_INCREMENT PRIMARY KEY, id_conductor INT NOT NULL, id_departamento INT NOT NULL, asunto VARCHAR(255) NOT NULL, resultado TEXT, status VARCHAR(50) DEFAULT 'Pendiente', fecha_consulta TIMESTAMP DEFAULT CURRENT_TIMESTAMP, FOREIGN KEY (id_conductor) REFERENCES taxis(id) ON DELETE CASCADE, FOREIGN KEY (id_departamento) REFERENCES departamentos(id) ON DELETE CASCADE )"); // Fetch departments for dropdowns $departamentos = $pdo->query("SELECT id, nombre FROM departamentos ORDER BY nombre")->fetchAll(PDO::FETCH_ASSOC); // Fetch taxis/conductores for dropdowns $conductores = $pdo->query("SELECT id, matricula FROM taxis ORDER BY matricula")->fetchAll(PDO::FETCH_ASSOC); // Get selected department for filtering $selected_depto_id = $_GET['id_departamento'] ?? null; // Handle form submission if ($_SERVER['REQUEST_METHOD'] === 'POST' && isset($_POST['add_consulta'])) { $id_conductor = $_POST['id_conductor']; $id_departamento = $_POST['id_departamento']; $asunto = trim($_POST['asunto']); $resultado = trim($_POST['resultado']); $status = $_POST['status']; if (!empty($id_conductor) && !empty($id_departamento) && !empty($asunto)) { $stmt = $pdo->prepare("INSERT INTO consultas (id_conductor, id_departamento, asunto, resultado, status) VALUES (?, ?, ?, ?, ?)"); $stmt->execute([$id_conductor, $id_departamento, $asunto, $resultado, $status]); $message = '
Consulta añadida con éxito.
'; } else { $message = '
Conductor, departamento y asunto son obligatorios.
'; } } // Fetch consultations $filter_status = $_GET['status'] ?? null; $sql = "SELECT c.id, t.matricula as conductor_nombre, dep.nombre as departamento_nombre, c.asunto, c.resultado, c.status, c.fecha_consulta FROM consultas c JOIN taxis t ON c.id_conductor = t.id JOIN departamentos dep ON c.id_departamento = dep.id"; $conditions = []; $params = []; if ($filter_status) { $conditions[] = "c.status = :status"; $params[':status'] = $filter_status; } if ($selected_depto_id) { $conditions[] = "c.id_departamento = :id_departamento"; $params[':id_departamento'] = $selected_depto_id; } if (count($conditions) > 0) { $sql .= " WHERE " . implode(' AND ', $conditions); } $sql .= " ORDER BY c.fecha_consulta DESC"; $stmt = $pdo->prepare($sql); $stmt->execute($params); $consultas = $stmt->fetchAll(PDO::FETCH_ASSOC); } catch (PDOException $e) { $message = "Error de base de datos: " . $e->getMessage(); $message_type = 'danger'; } ?>

Consultas

Filtro por Departamento
Limpiar
Añadir Nueva Consulta
Lista de Consultas
ConductorDepartamentoAsuntoResultadoEstadoFecha
No hay consultas.