<?php
// ============================================================
// ERP - ActSafe | Gerador de Relatório RTI (HTML — sem FPDF)
// Gera HTML profissional salvo no servidor; usuário imprime
// como PDF via Ctrl+P → Salvar como PDF no navegador.
// ============================================================
require_once '../5_config/config.php';
$usuario = verificarAuth();
$db = getDB();

// Parâmetros
$rti_id     = intval($_GET['rti_id'] ?? 0);
$unidade_id = intval($_GET['unidade_id'] ?? 0);
$titulo     = limpar($_GET['titulo'] ?? 'Relatório Técnico de Inspeção');
$inspetor   = limpar($_GET['inspetor'] ?? '');
$data_insp  = limpar($_GET['data'] ?? date('Y-m-d'));
$nc_desc    = limpar($_GET['nc'] ?? '');
$plano_acao = limpar($_GET['plano'] ?? '');
$fotos_json = $_GET['fotos'] ?? '';

$fotos = [];
if ($fotos_json) {
    $decoded = json_decode(base64_decode($fotos_json), true);
    if (is_array($decoded)) $fotos = $decoded;
}

// Buscar dados da unidade
$unidade = null;
if ($unidade_id) {
    $s = $db->prepare("SELECT * FROM unidades WHERE id=?");
    $s->execute([$unidade_id]);
    $unidade = $s->fetch();
}

$data_formatada    = date('d/m/Y', strtotime($data_insp));
$data_hora_emissao = date('d/m/Y \à\s H:i');
$doc_num           = 'RTI-' . str_pad($rti_id, 5, '0', STR_PAD_LEFT);
$unidade_nome      = $unidade ? ($unidade['codigo'] . ' — ' . $unidade['nome']) : '—';
$gestor_nome       = $unidade['gestor'] ?? 'Gestor da Unidade';
$tem_nc            = !empty(trim($nc_desc));

// ---- Montar HTML do relatório ----
ob_start();
?>
<!DOCTYPE html>
<html lang="pt-BR">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title><?php echo htmlspecialchars($doc_num); ?> — <?php echo htmlspecialchars($titulo); ?></title>
<style>
  *{box-sizing:border-box;margin:0;padding:0}
  body{font-family:Arial,Helvetica,sans-serif;font-size:11pt;color:#1e293b;background:#fff;padding:20px 30px}
  .page-break{page-break-before:always}
  .header{border-bottom:3px solid #0F4C81;padding-bottom:10px;margin-bottom:16px;display:flex;justify-content:space-between;align-items:flex-start}
  .header-left h1{font-size:16pt;color:#0F4C81}
  .header-left p{font-size:9pt;color:#64748b;margin-top:2px}
  .header-right{text-align:right;font-size:8pt;color:#64748b}
  .header-right strong{color:#0F4C81;font-size:10pt}
  .titulo-relatorio{background:#0F4C81;color:#fff;padding:8px 14px;border-radius:6px;font-size:12pt;font-weight:700;margin-bottom:16px}
  .info-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:10px;margin-bottom:20px}
  .info-box{background:#f8fafc;border:1px solid #e2e8f0;border-radius:6px;padding:8px 12px}
  .info-box label{font-size:8pt;color:#64748b;text-transform:uppercase;letter-spacing:.04em;display:block;margin-bottom:2px}
  .info-box strong{font-size:11pt;color:#1e293b}
  .sec-title{background:#f0f5fb;border-left:4px solid #0F4C81;padding:5px 10px;font-size:9pt;font-weight:700;color:#0F4C81;margin:14px 0 8px;text-transform:uppercase;letter-spacing:.04em}
  .sec-title.vermelho{background:#fff0ee;border-color:#dc2626;color:#b91c1c}
  .fotos-grid{display:grid;grid-template-columns:1fr 1fr;gap:12px;margin-bottom:20px}
  .foto-item{border:1px solid #e2e8f0;border-radius:8px;overflow:hidden}
  .foto-item img{width:100%;max-height:220px;object-fit:cover;display:block}
  .foto-item .foto-caption{padding:5px 8px;font-size:8pt;color:#64748b;background:#f8fafc;border-top:1px solid #e2e8f0}
  .foto-placeholder{width:100%;height:160px;background:#f1f5f9;display:flex;align-items:center;justify-content:center;color:#94a3b8;font-size:9pt}
  .text-box{border:1px solid #e2e8f0;border-radius:6px;padding:12px;font-size:9.5pt;line-height:1.6;color:#334155;min-height:60px;margin-bottom:12px;background:#fafafa}
  .text-box.nc{border-color:#fca5a5;background:#fff5f5;color:#7f1d1d}
  .conclusao{background:#f0fdf4;border:1px solid #86efac;border-radius:8px;padding:14px;margin:16px 0}
  .conclusao.nc{background:#fff7ed;border-color:#fed7aa}
  .conclusao p{font-size:10pt;line-height:1.6;color:#166534}
  .conclusao.nc p{color:#9a3412}
  .assinaturas{display:grid;grid-template-columns:1fr 1fr;gap:40px;margin-top:30px}
  .assinatura-box{text-align:center}
  .assinatura-box .linha{border-top:1px solid #334155;margin-bottom:6px;margin-top:40px}
  .assinatura-box p{font-size:9pt;font-weight:700;color:#1e293b}
  .assinatura-box small{font-size:8pt;color:#64748b}
  .footer{margin-top:30px;padding-top:10px;border-top:1px solid #e2e8f0;font-size:8pt;color:#94a3b8;display:flex;justify-content:space-between}
  .print-btn{position:fixed;bottom:20px;right:20px;background:#0F4C81;color:#fff;border:none;border-radius:50px;padding:12px 20px;font-size:11pt;font-weight:700;cursor:pointer;box-shadow:0 4px 12px rgba(15,76,129,.4);display:flex;align-items:center;gap:8px;z-index:999}
  @media print{
    .print-btn{display:none!important}
    body{padding:10px 15px}
    .page-break{page-break-before:always}
  }
</style>
</head>
<body>

<button class="print-btn" onclick="window.print()">
  <svg xmlns="http://www.w3.org/2000/svg" width="18" height="18" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5" stroke-linecap="round" stroke-linejoin="round"><polyline points="6 9 6 2 18 2 18 9"/><path d="M6 18H4a2 2 0 0 1-2-2v-5a2 2 0 0 1 2-2h16a2 2 0 0 1 2 2v5a2 2 0 0 1-2 2h-2"/><rect x="6" y="14" width="12" height="8"/></svg>
  Imprimir / Salvar PDF
</button>

<div class="header">
  <div class="header-left">
    <h1>ERP — ActSafe</h1>
    <p>Sistema de Gestão de Conformidade Normativa · NR 10 · NR 12 · SPDA</p>
  </div>
  <div class="header-right">
    <strong><?php echo htmlspecialchars($doc_num); ?></strong><br>
    Emitido em: <?php echo $data_hora_emissao; ?>
  </div>
</div>

<div class="titulo-relatorio"><?php echo htmlspecialchars($titulo); ?></div>

<div class="info-grid">
  <div class="info-box">
    <label>Unidade Fabril</label>
    <strong><?php echo htmlspecialchars($unidade_nome); ?></strong>
  </div>
  <div class="info-box">
    <label>Inspetor Responsável</label>
    <strong><?php echo htmlspecialchars($inspetor); ?></strong>
  </div>
  <div class="info-box">
    <label>Data da Inspeção</label>
    <strong><?php echo $data_formatada; ?></strong>
  </div>
</div>

<!-- Registro Fotográfico -->
<div class="sec-title">Registro Fotográfico da Inspeção</div>

<?php if (!empty($fotos)): ?>
<div class="fotos-grid">
  <?php foreach (array_slice($fotos, 0, 4) as $idx => $foto): ?>
  <div class="foto-item">
    <?php
    $caminho_img = UPLOAD_DIR . 'rti/' . ($foto['arquivo'] ?? '');
    $url_img = UPLOAD_URL . 'rti/' . ($foto['arquivo'] ?? '');
    if (!empty($foto['arquivo']) && file_exists($caminho_img)):
    ?>
    <img src="<?php echo htmlspecialchars($url_img); ?>" alt="Foto <?php echo $idx+1; ?>">
    <?php else: ?>
    <div class="foto-placeholder">Foto <?php echo $idx+1; ?> — não disponível</div>
    <?php endif; ?>
    <div class="foto-caption">
      <strong>Foto <?php echo $idx+1; ?></strong>
      <?php if (!empty($foto['legenda'])): ?> — <?php echo htmlspecialchars($foto['legenda']); ?><?php endif; ?>
    </div>
  </div>
  <?php endforeach; ?>
</div>
<?php else: ?>
<p style="font-size:9pt;color:#94a3b8;margin-bottom:16px">Nenhuma foto registrada nesta inspeção.</p>
<?php endif; ?>

<!-- Não Conformidades e Plano -->
<div class="page-break"></div>

<div class="sec-title vermelho">Não Conformidades Identificadas</div>
<div class="text-box <?php echo $tem_nc ? 'nc' : ''; ?>">
  <?php echo nl2br(htmlspecialchars($nc_desc ?: 'Nenhuma não conformidade registrada.')); ?>
</div>

<div class="sec-title">Plano de Ação / Recomendações</div>
<div class="text-box">
  <?php echo nl2br(htmlspecialchars($plano_acao ?: 'Nenhuma ação corretiva registrada.')); ?>
</div>

<div class="conclusao <?php echo $tem_nc ? 'nc' : ''; ?>">
  <?php if ($tem_nc): ?>
  <p><strong>Conclusão:</strong> Inspeção realizada conforme procedimentos técnicos aplicáveis. As não conformidades identificadas devem ser tratadas conforme o plano de ação estabelecido acima, respeitando os prazos definidos.</p>
  <?php else: ?>
  <p><strong>Conclusão:</strong> Inspeção realizada. Nenhuma não conformidade identificada. Instalações em conformidade com as normas aplicáveis.</p>
  <?php endif; ?>
</div>

<div class="assinaturas">
  <div class="assinatura-box">
    <div class="linha"></div>
    <p><?php echo htmlspecialchars($inspetor ?: 'Inspetor'); ?></p>
    <small>Inspetor Responsável</small>
  </div>
  <div class="assinatura-box">
    <div class="linha"></div>
    <p><?php echo htmlspecialchars($gestor_nome); ?></p>
    <small>Gestor / Responsável da Unidade</small>
  </div>
</div>

<div class="footer">
  <span>ERP — ActSafe · Gestão de Conformidade Normativa · Desenvolvido por Antônio da Luz</span>
  <span><?php echo htmlspecialchars($doc_num); ?> — <?php echo $data_hora_emissao; ?></span>
</div>

</body>
</html>
<?php
$html_content = ob_get_clean();

// Salvar arquivo HTML no servidor
$nome_arquivo = 'RTI_' . str_pad($rti_id, 5, '0', STR_PAD_LEFT) . '_' . date('Ymd_His') . '.html';
$dir_rel = UPLOAD_DIR . 'rti/';
if (!is_dir($dir_rel)) mkdir($dir_rel, 0755, true);
$caminho_html = $dir_rel . $nome_arquivo;
file_put_contents($caminho_html, $html_content);

// Atualizar o registro no banco (se existir)
if ($rti_id > 0) {
    $db->prepare("UPDATE documentos SET arquivo=?, mime_type='text/html', tamanho_kb=? WHERE id=?")
       ->execute([
           'rti/' . $nome_arquivo,
           file_exists($caminho_html) ? intval(filesize($caminho_html)/1024) : 0,
           $rti_id
       ]);
}

// Servir o HTML diretamente no navegador (para impressão/PDF)
header('Content-Type: text/html; charset=UTF-8');
echo $html_content;
exit;
