prepare("SELECT * FROM installations WHERE id = :id"); $stmt->bindParam(':id', $installation_id, PDO::PARAM_INT); $stmt->execute(); $installation = $stmt->fetch(PDO::FETCH_ASSOC); if (!$installation) { die("Instalação não encontrada."); } // 4. Buscar imagens da instalação $img_stmt = $pdo->prepare("SELECT image_path FROM installation_images WHERE installation_id = :id ORDER BY id ASC"); $img_stmt->bindParam(':id', $installation_id, PDO::PARAM_INT); $img_stmt->execute(); $images = $img_stmt->fetchAll(PDO::FETCH_ASSOC); } catch (Exception $e) { die("Erro ao acessar o banco de dados: " . $e->getMessage()); } // --- Início da Geração MHTML --- $boundary = "----=" . md5(uniqid(time())); $filename = "instalacao_" . $installation['id'] . "_" . str_replace(' ', '_', $installation['client_name']) . ".doc"; // Cabeçalhos principais para MHTML header("Content-Type: multipart/related; boundary=\"$boundary\""); header("Content-Disposition: attachment; filename=\"" . $filename . "\""); // Parte 1: Conteúdo HTML $html_content = <<
| ID da Instalação | {htmlspecialchars($installation['id'])} |
| Cliente | {htmlspecialchars($installation['client_name'])} |
| Endereço | {htmlspecialchars($installation['address'])} |
| Técnico Responsável | {htmlspecialchars($installation['technician_name'])} |
| Data | {date("d/m/Y H:i", strtotime($installation['created_at']))} |
| Status | {ucfirst(htmlspecialchars($installation['status']))} |
| Tensão (V) | {htmlspecialchars($installation['voltage'] ?? 'N/A')} |
| Fase-Neutro-Terra | {htmlspecialchars($installation['phase_neutral_ground'] ?? 'N/A')} |
| Saída do Disjuntor | {htmlspecialchars($installation['breaker_output'] ?? 'N/A')} |
{nl2br(htmlspecialchars($installation['observations'] ?? 'Nenhuma observação.'))}
HTML; // Preparar a seção de imagens $images_html = ''; $image_parts = ''; if (!empty($images)) { $images_html = '