<?php

session_start();
if (!isset($_SESSION['id'])) { header("Location: ../index/index.php"); exit(); }








include '../config.php';
include '../configuracao/modelo.php';

?>




















<!DOCTYPE html>
<html lang="pt-br">
<head>
    <meta charset="UTF-8">
    <title>Morfo Engine - Consulta de Estoque (Kardex)</title>
    <style>
        /* ESTILO RETRO WINDOWS 2000 */
        * { box-sizing: border-box; }
        body { background-color: #d4d0c8; font-family: "Tahoma", sans-serif; font-size: 11px; margin: 0; height: 100vh; display: flex; flex-direction: column; overflow: hidden; }
        
        .window { border: 2px solid; border-color: #ffffff #808080 #808080 #ffffff; background: #c0c0c0; flex: 1; display: flex; flex-direction: column; margin: 2px; }
        .title-bar { background: linear-gradient(90deg, #000080, #1084d0); color: white; padding: 4px 8px; font-weight: bold; display: flex; justify-content: space-between; align-items: center; }
        
        /* PAINEL DE FILTROS - SEM TIPO ITEM */
        .filter-pane { padding: 10px; background: #c0c0c0; border-bottom: 2px inset #fff; display: flex; gap: 8px; align-items: flex-end; flex-wrap: wrap; }
        fieldset { border: 2px inset #fff; padding: 5px; }
        legend { font-weight: bold; padding: 0 4px; }
        
        input, select { border: 2px inset #fff; padding: 3px; font-family: "Tahoma"; font-size: 11px; background: #fff; }
        .btn-win { padding: 4px 15px; background: #d4d0c8; border: 2px solid; border-color: #ffffff #808080 #808080 #ffffff; cursor: pointer; font-weight: bold; height: 35px; min-width: 120px; }
        .btn-win:active { border-color: #808080 #ffffff #ffffff #808080; padding: 5px 14px 3px 16px; }

        /* GRID DE DADOS */
        .grid-container { flex: 1; overflow-y: scroll; background: #fff; margin: 5px; border: 2px inset #808080; }
        table { width: 100%; border-collapse: collapse; }
        th { position: sticky; top: 0; background: #d4d0c8; border: 1px solid #808080; padding: 6px; text-align: left; box-shadow: inset 1px 1px #fff; z-index: 10; }
        td { border: 1px solid #dfdfdf; padding: 4px 6px; }
        
        tbody tr:nth-child(even) { background: #f5f5f5; }
        tbody tr:hover { background: #ffffcc; cursor: default; }

        .no-print { display: flex; }
        @media print { .no-print { display: none; } .grid-container { overflow: visible; } }
    </style>
</head>
<body>

<div class="window">
    <div class="title-bar no-print">
        <span>Morfo Engine - Consulta de Disponibilidade e Preços (Kardex)</span>
        <div style="font-size: 9px;">Papanduva/SC</div>
    </div>
    
    <div class="filter-pane no-print">
        <fieldset>
            <legend>Intervalo de Códigos</legend>
            <div style="display: flex; gap: 4px;">
                <input type="text" id="cod_ini" value="000001" style="width: 70px; text-align: center;">
                <span style="align-self: center;">até</span>
                <input type="text" id="cod_fim" value="999999" style="width: 70px; text-align: center;">
            </div>
        </fieldset>

        <fieldset style="flex: 1;">
            <legend>Descrição do Produto</legend>
            <input type="text" id="busca_txt" placeholder="Digite o nome ou parte da descrição..." style="width: 100%;">
        </fieldset>

        <fieldset>
            <legend>Saldo em Estoque</legend>
            <select id="filtro_saldo" style="width: 130px;">
                <option value="T">Todos os Itens</option>
                <option value="P">Apenas Positivos (+)</option>
                <option value="N">Apenas Negativos (-)</option>
                <option value="Z">Apenas Zerados (0)</option>
            </select>
        </fieldset>

        <button class="btn-win" onclick="consultar()">CONSULTAR [F5]</button>
    </div>

    <div class="grid-container">
        <table id="tabela_estoque">
            <thead>
                <tr>
                    <th width="80">Código</th>
                    <th>Descrição do Item</th>
                    <th width="40" style="text-align: center;">UN</th>
                    <th width="100" style="text-align: right;">Qtd. NF</th>
                    <th width="100" style="text-align: right;">Resv. Pedido</th>
                    <th width="110" style="text-align: right; background: #e8e8e8;">Disponível (Kardex)</th>
                    <th width="100" style="text-align: right;">Preço Unit.</th>
                </tr>
            </thead>
            <tbody id="resultado_corpo">
                <tr>
                    <td colspan="7" align="center" style="padding: 40px; color: #666;">
                        Utilize os filtros acima e clique em Consultar para carregar os dados.
                    </td>
                </tr>
            </tbody>
        </table>
    </div>

    <div style="background: #d4d0c8; padding: 2px 5px; border-top: 1px solid #808080; display: flex; justify-content: space-between; font-size: 10px;">
        <div id="status_banco">Status: Pronto</div>
        <div id="contagem_itens">Itens: 0</div>
    </div>
</div>

<script>
    function consultar() {
        const corpo = document.getElementById('resultado_corpo');
        const status = document.getElementById('status_banco');
        
        corpo.innerHTML = "<tr><td colspan='7' align='center' style='padding:20px;'>Acessando banco de dados...</td></tr>";
        status.innerText = "Status: Consultando...";

        const params = new URLSearchParams();
        params.append('cod_ini', document.getElementById('cod_ini').value);
        params.append('cod_fim', document.getElementById('cod_fim').value);
        params.append('busca_txt', document.getElementById('busca_txt').value);
        params.append('filtro_saldo', document.getElementById('filtro_saldo').value);
        // O campo tipo_item foi removido da interface, mas se o processar.php esperar, enviamos vazio
        params.append('tipo_item', ''); 

        fetch('processar.php', {
            method: 'POST',
            body: params
        })
        .then(response => response.text())
        .then(html => {
            corpo.innerHTML = html;
            status.innerText = "Status: Consulta concluída";
            
            // Atualiza contagem de linhas (descontando se houver mensagem de erro)
            const rows = corpo.querySelectorAll('tr[onclick], tr td:not([colspan])').length;
            document.getElementById('contagem_itens').innerText = "Itens: " + (corpo.innerText.includes('Nenhum') ? 0 : corpo.rows.length);
        })
        .catch(err => {
            corpo.innerHTML = "<tr><td colspan='7' align='center' style='color:red;'>Erro na requisição: " + err + "</td></tr>";
            status.innerText = "Status: Erro";
        });
    }

    // Atalho de teclado F5 para consulta rápida
    document.addEventListener('keydown', function(e) {
        if (e.key === "F5") {
            e.preventDefault();
            consultar();
        }
    });
</script>

</body>
</html>