<?php
// ============================================================
// ERP - ActSafe | Relatório de Inspeção em PDF
// Visualização e geração de PDF profissional
// Desenvolvido por Antônio da Luz
// ============================================================
session_start();
require_once '5_config/config.php';

// Verificar autenticação
if (!isset($_SESSION['usuario_id'])) {
    header('Location: index.php');
    exit;
}

$inspecao_id = (int)($_GET['id'] ?? 0);
if (!$inspecao_id) {
    die('<div style="padding:40px;text-align:center;color:#c00;font-family:Arial"><h2>❌ Erro: ID da inspeção não fornecido</h2><p><a href="inspecoes.php">← Voltar para Inspeções</a></p></div>');
}

$db = getDB();
if (!$db) {
    die('<div style="padding:40px;text-align:center;color:#c00;font-family:Arial"><h2>❌ Erro: Conexão com banco de dados falhou</h2></div>');
}

// Buscar inspeção
try {
    $stmt = $db->prepare("
        SELECT i.*, u.codigo AS unidade_codigo, u.nome AS unidade_nome, 
               e.nome AS equipamento_nome, e.cod AS equipamento_cod
        FROM inspecoes i
        LEFT JOIN unidades u ON u.id = i.unidade_id
        LEFT JOIN equipamentos e ON e.id = i.equipamento_id
        WHERE i.id = ? LIMIT 1
    ");
    $stmt->execute([$inspecao_id]);
    $inspecao = $stmt->fetch();
} catch (Exception $e) {
    die('<div style="padding:40px;text-align:center;color:#c00;font-family:Arial"><h2>❌ Erro na query: ' . htmlspecialchars($e->getMessage()) . '</h2></div>');
}

if (!$inspecao) {
    die('<div style="padding:40px;text-align:center;color:#c00;font-family:Arial"><h2>❌ Inspeção #' . $inspecao_id . ' não encontrada</h2><p><a href="inspecoes.php">← Voltar para Inspeções</a></p></div>');
}

// Buscar fotos
$fotos = [];
try {
    $stmt = $db->prepare("
        SELECT * FROM inspecao_fotos 
        WHERE inspecao_id = ? 
        ORDER BY ordem ASC
    ");
    $stmt->execute([$inspecao_id]);
    $fotos = $stmt->fetchAll();
} catch (Exception $e) {
    // Continua sem fotos se der erro
}

// Buscar não conformidades relacionadas
$ncs = [];
try {
    $stmt = $db->prepare("
        SELECT nc.*, pa.what, pa.who, pa.when_data, pa.how 
        FROM nao_conformidades nc
        LEFT JOIN planos_acao pa ON pa.nao_conformidade_id = nc.id
        WHERE nc.descricao LIKE ? OR nc.referencia_item LIKE ?
        ORDER BY nc.id DESC
    ");
    $stmt->execute(['%Inspeção #' . $inspecao_id . '%', '%Inspeção #' . $inspecao_id . '%']);
    $ncs = $stmt->fetchAll();
} catch (Exception $e) {
    // Continua sem NCs se der erro
}
?>
<!DOCTYPE html>
<html lang="pt-BR">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Relatório de Inspeção #<?= $inspecao_id ?></title>
    <style>
        * { margin: 0; padding: 0; box-sizing: border-box; }
        body { font-family: 'Segoe UI', Roboto, sans-serif; background: #f5f5f5; color: #333; }
        .container { max-width: 1000px; margin: 0 auto; padding: 20px; }
        .header { background: #fff; padding: 30px; border-radius: 8px; margin-bottom: 20px; box-shadow: 0 2px 8px rgba(0,0,0,0.1); border-top: 4px solid #0F4C81; }
        .header h1 { color: #0F4C81; font-size: 28px; margin-bottom: 20px; }
        .info-grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(200px, 1fr)); gap: 15px; }
        .info-item { background: #f9f9f9; padding: 15px; border-radius: 6px; border-left: 4px solid #0F4C81; }
        .info-label { font-size: 11px; color: #999; text-transform: uppercase; font-weight: 700; margin-bottom: 6px; }
        .info-value { font-size: 15px; color: #333; font-weight: 600; }
        .btn-group { display: flex; gap: 10px; margin-top: 20px; flex-wrap: wrap; }
        .btn { padding: 12px 24px; border-radius: 6px; border: none; cursor: pointer; font-size: 14px; font-weight: 600; transition: all 0.2s; text-decoration: none; display: inline-block; }
        .btn-primary { background: #0F4C81; color: #fff; }
        .btn-primary:hover { background: #0d4070; }
        .btn-secondary { background: #f0f0f0; color: #333; border: 1px solid #ddd; }
        .btn-secondary:hover { background: #e8e8e8; }
        .fotos-section { background: #fff; padding: 30px; border-radius: 8px; margin-bottom: 20px; box-shadow: 0 2px 8px rgba(0,0,0,0.1); }
        .fotos-section h2 { color: #0F4C81; margin-bottom: 20px; font-size: 20px; }
        .fotos-grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(220px, 1fr)); gap: 20px; margin-top: 20px; }
        .foto-card { background: #f9f9f9; border-radius: 8px; overflow: hidden; border: 1px solid #e0e0e0; transition: all 0.2s; }
        .foto-card:hover { box-shadow: 0 4px 12px rgba(0,0,0,0.1); }
        .foto-img { width: 100%; aspect-ratio: 4/3; object-fit: cover; background: #e8e8e8; }
        .foto-info { padding: 15px; }
        .foto-num { font-size: 11px; color: #999; font-weight: 700; margin-bottom: 8px; }
        .foto-legenda { font-size: 13px; color: #333; margin: 8px 0; font-weight: 600; }
        .foto-nc { font-size: 12px; padding: 6px 10px; border-radius: 4px; display: inline-block; margin-top: 8px; font-weight: 600; }
        .foto-nc.conforme { background: #ecfdf5; color: #065f46; }
        .foto-nc.nao-conforme { background: #fef2f2; color: #991b1b; }
        .ncs-section { background: #fff; padding: 30px; border-radius: 8px; margin-bottom: 20px; box-shadow: 0 2px 8px rgba(0,0,0,0.1); }
        .ncs-section h2 { color: #C0392B; margin-bottom: 20px; font-size: 20px; }
        .nc-item { padding: 15px; background: #fef2f2; border-left: 4px solid #ef4444; border-radius: 4px; margin-bottom: 15px; }
        .nc-desc { font-size: 14px; color: #333; margin-bottom: 10px; font-weight: 600; }
        .nc-ref { font-size: 12px; color: #666; margin-bottom: 10px; }
        .nc-plano { font-size: 12px; color: #333; background: #fff; padding: 12px; border-radius: 4px; margin-top: 10px; border-left: 3px solid #E8640C; }
        .nc-plano div { margin: 6px 0; }
        .empty { text-align: center; padding: 40px 20px; color: #999; }
        .footer { background: #0F4C81; color: #fff; padding: 30px; border-radius: 8px; text-align: center; margin-top: 30px; }
        .footer p { margin: 8px 0; font-size: 13px; }
        .footer strong { font-size: 14px; }
        @media print {
            body { background: #fff; }
            .header { box-shadow: none; border-bottom: none; }
            .btn-group { display: none; }
            .fotos-grid { grid-template-columns: repeat(2, 1fr); }
            .ncs-section { page-break-inside: avoid; }
            .footer { page-break-inside: avoid; }
        }
    </style>
</head>
<body>
<div class="container">
    <!-- HEADER -->
    <div class="header">
        <h1>📋 Relatório de Inspeção #<?= $inspecao_id ?></h1>
        <div class="info-grid">
            <div class="info-item">
                <div class="info-label">Norma</div>
                <div class="info-value"><?= sanitizar($inspecao['norma']) ?></div>
            </div>
            <div class="info-item">
                <div class="info-label">Unidade</div>
                <div class="info-value"><?= sanitizar($inspecao['unidade_nome'] ?? 'N/A') ?></div>
            </div>
            <div class="info-item">
                <div class="info-label">Equipamento</div>
                <div class="info-value"><?= sanitizar($inspecao['equipamento_nome'] ?? 'N/A') ?></div>
            </div>
            <div class="info-item">
                <div class="info-label">Técnico</div>
                <div class="info-value"><?= sanitizar($inspecao['tecnico_nome'] ?? 'N/A') ?></div>
            </div>
            <div class="info-item">
                <div class="info-label">Data da Inspeção</div>
                <div class="info-value"><?= $inspecao['concluida_em'] ? date('d/m/Y H:i', strtotime($inspecao['concluida_em'])) : 'Pendente' ?></div>
            </div>
            <div class="info-item">
                <div class="info-label">Status</div>
                <div class="info-value" style="color: <?= $inspecao['status'] === 'concluida' ? '#1A7A4A' : '#E8640C' ?>">
                    <?= ucfirst($inspecao['status']) ?>
                </div>
            </div>
        </div>
        <div class="btn-group">
            <button class="btn btn-primary" onclick="window.print()">🖨️ Imprimir / Salvar como PDF</button>
            <a href="2_backend/inspecoes.php" class="btn btn-secondary">← Voltar</a>
        </div>
    </div>

    <!-- FOTOS -->
    <?php if (count($fotos) > 0): ?>
    <div class="fotos-section">
        <h2>📸 Fotos da Inspeção (<?= count($fotos) ?> total)</h2>
        <div class="fotos-grid">
            <?php foreach ($fotos as $idx => $foto): ?>
            <div class="foto-card">
                <img src="<?= UPLOAD_URL . sanitizar($foto['arquivo']) ?>" alt="Foto <?= $idx + 1 ?>" class="foto-img" onerror="this.src='data:image/svg+xml,%3Csvg xmlns=%22http://www.w3.org/2000/svg%22 width=%22200%22 height=%22150%22%3E%3Crect fill=%22%23e8e8e8%22 width=%22200%22 height=%22150%22/%3E%3Ctext x=%2250%25%22 y=%2250%25%22 text-anchor=%22middle%22 dy=%22.3em%22 fill=%22%23999%22 font-size=%2214%22%3EFoto não disponível%3C/text%3E%3C/svg%3E'">
                <div class="foto-info">
                    <div class="foto-num">Foto <?= $idx + 1 ?> · <?= date('d/m/Y H:i', strtotime($foto['criada_em'] ?? 'now')) ?></div>
                    <div class="foto-legenda"><strong><?= sanitizar($foto['legenda'] ?? 'Sem legenda') ?></strong></div>
                    <?php if ($foto['nao_conformidade']): ?>
                    <div class="foto-nc nao-conforme">⚠️ Não Conforme</div>
                    <div style="font-size: 11px; color: #666; margin-top: 8px; padding: 8px; background: #fff; border-radius: 3px; border-left: 2px solid #ef4444;">
                        <?= sanitizar($foto['nao_conformidade']) ?>
                    </div>
                    <?php else: ?>
                    <div class="foto-nc conforme">✓ Conforme</div>
                    <?php endif; ?>
                </div>
            </div>
            <?php endforeach; ?>
        </div>
    </div>
    <?php else: ?>
    <div class="fotos-section">
        <div class="empty">
            <p>📸 Nenhuma foto registrada nesta inspeção.</p>
        </div>
    </div>
    <?php endif; ?>

    <!-- NÃO CONFORMIDADES E PLANO DE AÇÃO -->
    <?php if (count($ncs) > 0): ?>
    <div class="ncs-section">
        <h2>⚠️ Não Conformidades Encontradas (<?= count($ncs) ?>)</h2>
        <?php foreach ($ncs as $nc): ?>
        <div class="nc-item">
            <div class="nc-desc">
                <strong>NC #<?= $nc['id'] ?></strong> — <?= sanitizar($nc['descricao']) ?>
            </div>
            <div class="nc-ref">
                <strong>Referência:</strong> <?= sanitizar($nc['referencia_item'] ?? 'N/A') ?>
            </div>
            <?php if ($nc['what'] || $nc['who'] || $nc['when_data'] || $nc['how']): ?>
            <div class="nc-plano">
                <strong style="color: #E8640C; display: block; margin-bottom: 8px;">📋 Plano de Ação 5W2H:</strong>
                <?php if ($nc['what']): ?><div>• <strong>O QUÊ:</strong> <?= sanitizar($nc['what']) ?></div><?php endif; ?>
                <?php if ($nc['who']): ?><div>• <strong>QUEM:</strong> <?= sanitizar($nc['who']) ?></div><?php endif; ?>
                <?php if ($nc['when_data']): ?><div>• <strong>QUANDO:</strong> <?= date('d/m/Y', strtotime($nc['when_data'])) ?></div><?php endif; ?>
                <?php if ($nc['how']): ?><div>• <strong>COMO:</strong> <?= sanitizar($nc['how']) ?></div><?php endif; ?>
            </div>
            <?php endif; ?>
        </div>
        <?php endforeach; ?>
    </div>
    <?php endif; ?>

    <!-- OBSERVAÇÕES FINAIS -->
    <?php if ($inspecao['observacoes_finais']): ?>
    <div class="fotos-section">
        <h2>📝 Observações Finais</h2>
        <div style="background: #f9f9f9; padding: 15px; border-radius: 6px; line-height: 1.8; white-space: pre-wrap; color: #333; border-left: 4px solid #0F4C81;">
            <?= sanitizar($inspecao['observacoes_finais']) ?>
        </div>
    </div>
    <?php endif; ?>

    <!-- RODAPÉ -->
    <div class="footer">
        <strong>ERP - ActSafe</strong>
        <p>Sistema de Gestão de Conformidade Normativa</p>
        <p style="margin-top: 15px; font-size: 12px; opacity: 0.9;">Desenvolvido por Antônio da Luz | Gerado em <?= date('d/m/Y H:i:s') ?></p>
        <p style="margin-top: 10px; font-size: 11px; opacity: 0.8;">Este documento foi gerado automaticamente pelo sistema e é válido como registro de inspeção.</p>
    </div>
</div>

<script>
    // Melhorar impressão
    window.addEventListener('beforeprint', () => {
        document.body.style.background = '#fff';
    });
</script>
</body>
</html>
