<?php
// Limpar qualquer buffer de output
while (ob_get_level()) {
    ob_end_clean();
}

require __DIR__ . '/vendor/autoload.php';
require __DIR__ . '/db.php';

use TCPDF as TCPDF;

$responseId = $_GET['id'] ?? 0;
if (!$responseId) {
    die('ID não fornecido');
}

try {
    $stmt = $pdo->prepare("
        SELECT fr.*, f.nome 
        FROM formulario_respostas fr 
        JOIN formularios f ON fr.formulario_id = f.id 
        WHERE fr.id = ?
    ");
    $stmt->execute([$responseId]);
    $response = $stmt->fetch(PDO::FETCH_ASSOC);

    if (!$response) {
        die('Resposta não encontrada');
    }

    $data = [];
    $stmtFields = $pdo->prepare("
        SELECT fc.label, frc.valor 
        FROM formulario_respostas_campos frc 
        JOIN formulario_campos fc ON frc.campo_id = fc.id 
        WHERE frc.resposta_id = ?
    ");
    $stmtFields->execute([$responseId]);
    $fields = $stmtFields->fetchAll(PDO::FETCH_ASSOC);

    foreach ($fields as $field) {
        $data[$field['label']] = $field['valor'];
    }

    // Função para obter valores do array de dados
    function getFieldValue($data, $fieldName) {
        if (!is_array($data)) {
            return '';
        }
        
        // Primeiro tenta pelo nome exato
        $value = $data[$fieldName] ?? '';
        
        // Se não encontrar, procura por similaridade
        if (empty($value)) {
            foreach ($data as $key => $val) {
                if (stripos($key, $fieldName) !== false) {
                    $value = $val;
                    break;
                }
            }
        }
        
        if (is_array($value)) {
            return implode(', ', $value);
        }
        
        return $value;
    }

    // Função para endereço completo
    function getEnderecoCompleto($data) {
        $endereco = getFieldValue($data, 'Endereço');
        $numero = getFieldValue($data, 'Numero');
        return trim($endereco . ($numero ? ', ' . $numero : ''));
    }

    // Obter os valores dos campos com fallbacks
    $nome = getFieldValue($data, 'Nome completo') ?: getFieldValue($data, 'Nome do Funcionário') ?: '-';
    $telefone = getFieldValue($data, 'Celular') ?: getFieldValue($data, 'Tel') ?: '-';
    $email = getFieldValue($data, 'E-mail Pessoal') ?: getFieldValue($data, 'Email') ?: '-';
    $mae = getFieldValue($data, 'Mãe') ?: getFieldValue($data, 'Nome de Mãe') ?: '-';
    $pai = getFieldValue($data, 'Pai') ?: '-';
    $dataNascimento = getFieldValue($data, 'Data de Nascimento') ?: getFieldValue($data, 'Data Nasc') ?: '-';
    $raca = getFieldValue($data, 'Raça') ?: getFieldValue($data, 'Raça/Cor') ?: '-';
    $estadoCivil = getFieldValue($data, 'Estado Civil') ?: '-';
    $conjuge = getFieldValue($data, 'Nome Cônjuge') ?: '-';
    $enderecoCompleto = getEnderecoCompleto($data) ?: '-';
    $complemento = getFieldValue($data, 'Outros') ?: getFieldValue($data, 'Complemento') ?: '-';
    $cep = getFieldValue($data, 'CEP') ?: '-';
    $bairro = getFieldValue($data, 'Bairro') ?: '-';
    $cidade = getFieldValue($data, 'Cidade') ?: '-';
    $estado = getFieldValue($data, 'UF') ?: getFieldValue($data, 'Estado') ?: '-';
    $escolaridade = getFieldValue($data, 'Escolaridade') ?: '-';
    $estudante = getFieldValue($data, 'Você é Estudante') ?: 'Não';
    $cpf = getFieldValue($data, 'CPF') ?: '-';
    $rg = getFieldValue($data, 'RG') ?: '-';
    $dataExpedicao = getFieldValue($data, 'Data de Expedição') ?: getFieldValue($data, 'Data emissão') ?: '-';
    $orgaoExpedidor = getFieldValue($data, 'Órgão de Expedição') ?: '-';
    $estadoEmissor = getFieldValue($data, 'Estado de nascimento (O que está no RG)') ?: getFieldValue($data, 'Estado emissor') ?: '-';
    $nacionalidade = getFieldValue($data, 'Nacionalidade') ?: '-';
    $naturalidade = getFieldValue($data, 'Naturalidade') ?: '-';
    $pis = getFieldValue($data, 'Numero PIS/PASEP Obs: Primeiro Emprego? Digite: "Primeiro Emprego" na resposta.') ?: getFieldValue($data, 'PIS') ?: '-';
    $dataEmissaoPis = getFieldValue($data, 'Data de Emissão do PIS') ?: getFieldValue($data, 'Data emissão PIS') ?: '-';
    $dataAdmissao = getFieldValue($data, 'Data de Admissão') ?: '-';
    $dataDemissao = getFieldValue($data, 'Data de Demisão') ?: '-';
    $cargaHoraria = getFieldValue($data, 'Carga Horária') ?: '-';
    $salario = getFieldValue($data, 'Salário') ?: '-';
    $dadosBancarios = getFieldValue($data, 'Agência e Conta') ?: '-';
    $funcao = getFieldValue($data, 'Cargo') ?: getFieldValue($data, 'Função') ?: '-';
    $transporte = getFieldValue($data, 'Irá utilizar o Vale Transporte') ?: getFieldValue($data, 'Transporte') ?: 'Não';
    $valorTransporte = getFieldValue($data, 'Valor diário do vale transporte') ?: getFieldValue($data, 'Valor') ?: '-';

    // Dependentes
    $dependentes = [];
    for ($i = 1; $i <= 3; $i++) {
        $nomeDependente = getFieldValue($data, "Nome Completo Dependente $i");
        if (!empty($nomeDependente) && $nomeDependente !== '-') {
            $dependentes[] = [
                'nome' => $nomeDependente,
                'dataNascimento' => getFieldValue($data, "Data de Nascimento Dependente $i"),
                'cpf' => getFieldValue($data, "CPF Dependente $i"),
                'cidadeNascimento' => getFieldValue($data, "Local/Cidade de Nascimento Do Dependente $i")
            ];
        }
    }

    // Criar PDF
    $pdf = new TCPDF(PDF_PAGE_ORIENTATION, PDF_UNIT, PDF_PAGE_FORMAT, true, 'UTF-8', false);
    $pdf->SetCreator(PDF_CREATOR);
    $pdf->SetAuthor('Sistema de Formulários');
    $pdf->SetTitle('Ficha de Admissão');
    $pdf->SetMargins(15, 15, 15);
    $pdf->SetHeaderMargin(0);
    $pdf->SetFooterMargin(0);
    $pdf->AddPage();

    // HTML content
    $html = '
    <style>
        .title { text-align: left; font-weight: bold; font-size: 14pt; margin-bottom: 30px; }
        .content { font-size: 10pt; text-align: justify; margin-bottom: 15mm; }
        .field-label { font-weight: bold; }
        .field-value { text-decoration: underline; }
        .signature-line { border-bottom: 1px solid #000; width: 100%; margin-top: 10mm; }
        .signature { text-align: center; margin-top: 2mm; }
        table.form-table { width: 100%; border-collapse: collapse; }
        table.form-table td { padding: 3px; vertical-align: top; }
        .section-title { font-weight: bold; margin-top: 12mm; margin-bottom: 5mm; }
        .dependente-section { margin-top: 5mm; }
        .empty-field { color: #999; font-style: italic; }
    </style>

    <div class="title">TERMO DE CONSENTIMENTO PARA TRATAMENTO DE DADOS PESSOAIS</div>
    <div class="content">
        Este termo de consentimento foi elaborado em conformidade com a Lei Geral de Proteção de Dados (LGPD). 
        Consoante ao artigo 5º inciso XII da Lei 13.709 este documento viabiliza a manifestação livre, 
        informada e inequívoca, pela qual o titular <span class="field-value">' . htmlspecialchars($nome) . '</span>, 
        concorda com o tratamento de seus dados pessoais e os dados do menor sob os seus cuidados, 
        para a finalidade de contratação e admissão.
    </div>

    <div class="title">FICHA DE ADMISSÃO</div>
    <div class="title"> </div>

    <table class="form-table">
        <tr>
            <td width="40%"><span class="field-label">Nome do Funcionário:</span></td>
            <td width="60%">' . htmlspecialchars($nome) . '</td>
        </tr>
        <tr>
            <td><span class="field-label">Tel:</span></td>
            <td>' . htmlspecialchars($telefone) . '</td>
        </tr>
        <tr>
            <td><span class="field-label">Email:</span></td>
            <td>' . htmlspecialchars($email) . '</td>
        </tr>
        <tr>
            <td><span class="field-label">Nome de Mãe:</span></td>
            <td>' . htmlspecialchars($mae) . '</td>
        </tr>
        <tr>
            <td><span class="field-label">Pai:</span></td>
            <td>' . htmlspecialchars($pai) . '</td>
        </tr>
        <tr>
            <td><span class="field-label">Data Nasc:</span></td>
            <td>' . htmlspecialchars($dataNascimento) . '</td>
        </tr>
        <tr>
            <td><span class="field-label">Raça/Cor:</span></td>
            <td>' . htmlspecialchars($raca) . '</td>
        </tr>
        <tr>
            <td><span class="field-label">Estado Civil:</span></td>
            <td>' . htmlspecialchars($estadoCivil) . '</td>
        </tr>
        <tr>
            <td><span class="field-label">Nome Cônjuge:</span></td>
            <td>' . htmlspecialchars($conjuge) . '</td>
        </tr>
        <tr>
            <td><span class="field-label">Endereço:</span></td>
            <td>' . htmlspecialchars($enderecoCompleto) . '</td>
        </tr>
        <tr>
            <td><span class="field-label">Complemento:</span></td>
            <td>' . htmlspecialchars($complemento) . '</td>
        </tr>
        <tr>
            <td><span class="field-label">CEP:</span></td>
            <td>' . htmlspecialchars($cep) . '</td>
        </tr>
        <tr>
            <td><span class="field-label">Bairro:</span></td>
            <td>' . htmlspecialchars($bairro) . '</td>
        </tr>
        <tr>
            <td><span class="field-label">Cidade:</span></td>
            <td>' . htmlspecialchars($cidade) . '</td>
        </tr>
        <tr>
            <td><span class="field-label">Estado:</span></td>
            <td>' . htmlspecialchars($estado) . '</td>
        </tr>
        <tr>
            <td><span class="field-label">Escolaridade:</span></td>
            <td>' . htmlspecialchars($escolaridade) . '</td>
        </tr>
        <tr>
            <td><span class="field-label">Estudante:</span></td>
            <td>' . ($estudante === 'Sim' ? '(X) Sim ( ) Não' : '( ) Sim (X) Não') . '</td>
        </tr>
        <tr>
            <td><span class="field-label">CPF:</span></td>
            <td>' . htmlspecialchars($cpf) . '</td>
        </tr>
        <tr>
            <td><span class="field-label">RG:</span></td>
            <td>' . htmlspecialchars($rg) . '</td>
        </tr>
        <tr>
            <td><span class="field-label">Estado emissor:</span></td>
            <td>' . htmlspecialchars($estadoEmissor) . '</td>
        </tr>
        <tr>
            <td><span class="field-label">Data emissão:</span></td>
            <td>' . htmlspecialchars($dataExpedicao) . '</td>
        </tr>
        <tr>
            <td><span class="field-label">Órgão Expedidor:</span></td>
            <td>' . htmlspecialchars($orgaoExpedidor) . '</td>
        </tr>
        <tr>
            <td><span class="field-label">Nacionalidade:</span></td>
            <td>' . htmlspecialchars($nacionalidade) . '</td>
        </tr>
        <tr>
            <td><span class="field-label">Naturalidade:</span></td>
            <td>' . htmlspecialchars($naturalidade) . '</td>
        </tr>
        <tr>
            <td><span class="field-label">PIS:</span></td>
            <td>' . htmlspecialchars($pis) . '</td>
        </tr>
        <tr>
            <td><span class="field-label">Data emissão PIS:</span></td>
            <td>' . htmlspecialchars($dataEmissaoPis) . '</td>
        </tr>
    </table>';

    // Seção de Dependentes
    if (!empty($dependentes)) {
        $html .= '<div class="section-title">Dependentes:</div>';
        foreach ($dependentes as $index => $dependente) {
            $html .= '
            <div class="dependente-section">
                <table class="form-table">
                    <tr>
                        <td width="40%"><span class="field-label">Nome do Dependente ' . ($index + 1) . ':</span></td>
                        <td width="60%">' . htmlspecialchars($dependente['nome']) . '</td>
                    </tr>
                    <tr>
                        <td><span class="field-label">Data de Nascimento:</span></td>
                        <td>' . htmlspecialchars($dependente['dataNascimento']) . '</td>
                    </tr>
                    <tr>
                        <td><span class="field-label">CPF:</span></td>
                        <td>' . htmlspecialchars($dependente['cpf']) . '</td>
                    </tr>
                    <tr>
                        <td><span class="field-label">Cidade de Nascimento:</span></td>
                        <td>' . htmlspecialchars($dependente['cidadeNascimento']) . '</td>
                    </tr>
                </table>
            </div>';
        }
    } else {
        $html .= '<div class="section-title">Dependentes:</div>';
        $html .= '<p>Nenhum dependente declarado</p>';
    }

    // Seção de Dados de Admissão
    $html .= '
    <div class="section-title">Dados de Admissão:</div>
    <table class="form-table">
        <tr>
            <td width="40%">Data de Admissão:</td>
            <td width="60%">' . htmlspecialchars($dataAdmissao) . '</td>
        </tr>
        <tr>
            <td>Data de Demissão:</td>
            <td>' . htmlspecialchars($dataDemissao) . '</td>
        </tr>
        <tr>
            <td>Carga Horária:</td>
            <td>' . htmlspecialchars($cargaHoraria) . '</td>
        </tr>
        <tr>
            <td>Salário:</td>
            <td>R$ ' . htmlspecialchars($salario) . '</td>
        </tr>
        <tr>
            <td>Dados bancários:</td>
            <td>' . htmlspecialchars($dadosBancarios) . '</td>
        </tr>
        <tr>
            <td>Função:</td>
            <td>' . htmlspecialchars($funcao) . '</td>
        </tr>
        <tr>
            <td>Transporte:</td>
            <td>' . ($transporte === 'Sim' ? '(X) Sim ( ) Não' : '( ) Sim (X) Não') . '</td>
        </tr>
        <tr>
            <td>Valor VT:</td>
            <td>R$ ' . htmlspecialchars($valorTransporte) . '</td>
        </tr>
        <tr>
            <td>Tipo de salário:</td>
            <td>(X) mensal ( ) semanal ( ) quinzenal</td>
        </tr>
    </table>

    <div class="section-title">Documentos necessários:</div>
    <ul>
        <li>Carteira de Trabalho (Cópia CTPS Digital)</li>
        <li>Uma Foto 3x4</li>
        <li>Cópia certidão nascimento ou Casamento</li>
        <li>Cópia Comprovante de Residência</li>
        <li>Cópia Comprovante de escolaridade</li>
        <li>Cópia certidão nascimento filhos menores de 14 anos e CPF dos filhos</li>
        <li>Exame médico Admissional</li>
        <li>Cópia RG, CPF e Título Eleitoral</li>
        <li>Cópia PIS</li>
        <li>Cópia Reservista</li>
        <li>Número conta bancária</li>
    </ul>

    <div class="content">
        Assumo inteira responsabilidade pelas informações aqui prestadas, e consentidas para tratamentos.
    </div>

    <div style="margin-top: 15mm;">
        ______________________, _____ de ____________________ de ______.
    </div>

    <div class="signature-line"></div>
    <div class="signature">Assinatura do Funcionário</div>';

    $pdf->writeHTML($html, true, false, true, false, '');
    $pdf->Output('ficha_admissao_' . $responseId . '.pdf', 'D');

} catch (Exception $e) {
    die('Erro ao gerar PDF: ' . $e->getMessage());
}