<!DOCTYPE html>
<html lang="pt-br">
<head>
    <meta charset="UTF-8">
    <title>Busca de Documento - Morfo Engine</title>
    <style>
        body { background: #d4d0c8; font-family: "Tahoma", sans-serif; font-size: 11px; margin: 8px; }
        .window { border: 2px solid; border-color: #fff #808080 #808080 #fff; background: #c0c0c0; padding: 2px; }
        .title-bar { background: #000080; color: white; padding: 3px 6px; font-weight: bold; }
        .content { padding: 10px; }
        input { border: 2px inset #fff; padding: 3px; background: #fff; width: 300px; outline: none; }
        .btn-win { background: #d4d0c8; border: 2px solid; border-color: #fff #808080 #808080 #fff; font-weight: bold; cursor: pointer; padding: 2px 10px; }
        .btn-win:active { border-color: #808080 #fff #fff #808080; }
        .table-container { background: #fff; border: 2px inset #fff; margin-top: 10px; height: 300px; overflow-y: scroll; }
        table { width: 100%; border-collapse: collapse; }
        th { background: #d4d0c8; border: 1px solid #808080; position: sticky; top: 0; text-align: left; padding: 4px; font-size: 10px; }
        td { border-bottom: 1px solid #f0f0f0; padding: 4px; cursor: pointer; }
        tr:hover td { background: #000080; color: #fff; }
        .badge { padding: 1px 4px; font-weight: bold; border: 1px solid #808080; }
    </style>
</head>
<body>

<div class="window">
    <div class="title-bar">Localizar Documento (ped_cab)</div>
    <div class="content">
        <input type="text" id="campobusca" placeholder="Pesquisar por Código, Nome ou ID..." onkeyup="if(event.key==='Enter') pesquisar()">
        <button class="btn-win" onclick="pesquisar()">BUSCAR</button>

        <div class="table-container">
            <table>
                <thead>
                    <tr>
                        <th width="40">Tipo</th>
                        <th width="60">Código</th>
                        <th>Cliente / Participante</th>
                        <th width="80">Valor</th>
                    </tr>
                </thead>
                <tbody id="resultadotabela"></tbody>
            </table>
        </div>
    </div>
</div>

<script>
    async function pesquisar() {
        const query = document.getElementById('campobusca').value;
        const tbody = document.getElementById('resultadotabela');
        tbody.innerHTML = '<tr><td colspan="4">A pesquisar...</td></tr>';

        try {
            const response = await fetch(`busca_documento_motor.php?q=${encodeURIComponent(query)}`);
            const dados = await response.json();
            tbody.innerHTML = '';

            dados.forEach(item => {
                const tr = document.createElement('tr');
                tr.onclick = () => selecionar(item);
                
                const labelOp = item.operacao === 'V' ? '<span class="badge" style="background:#e1ffdf">V</span>' : '<span class="badge" style="background:#ffdfdf">C</span>';
                
                tr.innerHTML = `
                    <td style="text-align:center">${labelOp}</td>
                    <td><b>${item.codigo}</b></td>
                    <td>${item.nome}</td>
                    <td style="text-align:right">R$ ${item.valor}</td>
                `;
                tbody.appendChild(tr);
            });
        } catch (e) {
            tbody.innerHTML = '<tr><td colspan="4" style="color:red">Erro na consulta.</td></tr>';
        }
    }

 function selecionar(item) {
    if (window.opener && !window.opener.closed) {
        const winPai = window.opener;
        const docPai = winPai.document;
        
        // 1. Preenche identificação e participante
        docPai.getElementById('val_numero').value = item.codigo;
        docPai.getElementById('val_id_participante').value = item.id_part;
        docPai.getElementById('val_nome_participante').value = item.nome;
        
        // 2. Lógica de Emitente: Venda = Própria (0) | Compra = Terceiros (1)
        const selEmitente = docPai.getElementById('val_reg_c140_ind_emit');
        if (selEmitente) {
            selEmitente.value = (item.operacao === 'V') ? "0" : "1";
            selEmitente.style.backgroundColor = "#e0e0e0";
            selEmitente.style.pointerEvents = "none"; 
            selEmitente.tabIndex = -1;
        }

        // 3. Preenchimento e BLOQUEIO de Valores (Bruto e Líquido)
        let v = parseFloat(item.valor) || 0;
        const valorFormatado = "R$ " + v.toLocaleString('pt-BR', {minimumFractionDigits: 2});
        
        const campoBruto = docPai.getElementById('val_bruto');
        const campoLiquido = docPai.getElementById('display_liquido'); // Se for input use val_liquido

        campoBruto.value = valorFormatado;
        campoBruto.readOnly = true;
        campoBruto.style.backgroundColor = "#e0e0e0";
        campoBruto.classList.add('readonly');

        // 4. Bloqueio dos campos de Participante
        const inputIdPart = docPai.getElementById('val_id_participante');
        const inputNomePart = docPai.getElementById('val_nome_participante');
        
        [inputIdPart, inputNomePart].forEach(el => {
            el.readOnly = true;
            el.style.backgroundColor = "#e0e0e0";
            el.classList.add('readonly');
        });

        // Esconder lupa do participante
        const btnBuscaPart = inputNomePart.nextElementSibling; 
        if (btnBuscaPart && btnBuscaPart.classList.contains('btn-search')) {
            btnBuscaPart.style.visibility = 'hidden';
        }
        
        // 5. Atualiza a interface do pai
        if(typeof winPai.atualizarTotais === "function") winPai.atualizarTotais();
        if(typeof winPai.atualizarDescricao === "function") winPai.atualizarDescricao();
        
        window.close();
    }
}
</script>
</body>
</html>