<?php
include_once('../config.php');
include_once('../header.php');

// 1. DEFINIR DATAS PADRÃO E PROCESSAR ATALHOS
$data_inicio = $_POST['data_inicio'] ?? date('Y-m-01');
$data_fim = $_POST['data_fim'] ?? date('Y-m-t');
$filtro_tipo = $_POST['filtro_tipo'] ?? '';
$filtro_busca = $_POST['filtro_busca'] ?? '';

if (isset($_POST['periodo'])) {
    if ($_POST['periodo'] == 'hoje') {
        $data_inicio = date('Y-m-d'); $data_fim = date('Y-m-d');
    } elseif ($_POST['periodo'] == 'mes') {
        $data_inicio = date('Y-m-01'); $data_fim = date('Y-m-t');
    } elseif ($_POST['periodo'] == 'ano') {
        $data_inicio = date('Y-01-01'); $data_fim = date('Y-12-31');
    }
}

// Construção da cláusula WHERE para busca global em todos os campos
$where_extra = "";
if ($filtro_tipo != '') {
    $where_extra .= " AND TIPO = '$filtro_tipo'";
}
if ($filtro_busca != '') {
    // Busca em Produto, Cliente, Usuário e Forma de Pagamento
    $where_extra .= " AND (PRODUTO_NOME LIKE '%$filtro_busca%' 
                      OR CLIENTE_FORNECEDOR LIKE '%$filtro_busca%' 
                      OR USUARIO LIKE '%$filtro_busca%' 
                      OR FORMA_PAGAMENTO LIKE '%$filtro_busca%')";
}

// 2. BUSCA TOTAIS PARA OS CARDS
$res_ent = $conn->query("SELECT SUM(VALOR_TOTAL) as TOTAL, COUNT(ID) as QTD FROM movimentacoes WHERE TIPO = 'ENTRADA' AND DATE(DATA_MOVIMENTACAO) BETWEEN '$data_inicio' AND '$data_fim' $where_extra")->fetch_assoc();
$res_sai = $conn->query("SELECT SUM(VALOR_TOTAL) as TOTAL FROM movimentacoes WHERE TIPO = 'SAÍDA' AND DATE(DATA_MOVIMENTACAO) BETWEEN '$data_inicio' AND '$data_fim' $where_extra")->fetch_assoc();
$res_fiado = $conn->query("SELECT SUM(VALOR_TOTAL) as TOTAL FROM movimentacoes WHERE PRODUTO_NOME LIKE '%FIADO%' AND DATE(DATA_MOVIMENTACAO) BETWEEN '$data_inicio' AND '$data_fim' $where_extra")->fetch_assoc();

$faturamento = $res_ent['TOTAL'] ?? 0;
$despesas = $res_sai['TOTAL'] ?? 0;
$total_rec_fiado = $res_fiado['TOTAL'] ?? 0;
$lucro_bruto = $faturamento - $despesas;

// 3. BUSCA LANÇAMENTOS DETALHADOS (UNIFICADOS POR VENDA)
$sql_lancamentos = "SELECT 
    DATA_MOVIMENTACAO, 
    TIPO, 
    USUARIO, 
    CLIENTE_FORNECEDOR, 
    GROUP_CONCAT(PRODUTO_NOME SEPARATOR ' + ') as PRODUTOS_UNIFICADOS, 
    FORMA_PAGAMENTO, 
    SUM(VALOR_TOTAL) as TOTAL_UNIFICADO 
    FROM movimentacoes 
    WHERE DATE(DATA_MOVIMENTACAO) BETWEEN '$data_inicio' AND '$data_fim' 
    $where_extra
    GROUP BY DATA_MOVIMENTACAO, CLIENTE_FORNECEDOR, TIPO, USUARIO, FORMA_PAGAMENTO
    ORDER BY DATA_MOVIMENTACAO DESC";
$res_lancamentos = $conn->query($sql_lancamentos);

// 4. RESUMOS EXECUTIVOS
$res_pagamentos = $conn->query("SELECT FORMA_PAGAMENTO, SUM(VALOR_TOTAL) as TOTAL_FORMA, COUNT(ID) as QTD FROM movimentacoes WHERE TIPO = 'ENTRADA' AND DATE(DATA_MOVIMENTACAO) BETWEEN '$data_inicio' AND '$data_fim' $where_extra GROUP BY FORMA_PAGAMENTO ORDER BY TOTAL_FORMA DESC");
$res_vendedores = $conn->query("SELECT USUARIO, SUM(VALOR_TOTAL) as TOTAL_VENDIDO, COUNT(ID) as QTD FROM movimentacoes WHERE TIPO = 'ENTRADA' AND DATE(DATA_MOVIMENTACAO) BETWEEN '$data_inicio' AND '$data_fim' $where_extra GROUP BY USUARIO ORDER BY TOTAL_VENDIDO DESC");
?>

<style>
    .module-wrapper { display: flex; flex-direction: column; width: 100%; padding: 15px; box-sizing: border-box; text-transform: uppercase; font-family: 'Segoe UI', sans-serif; }
    .filter-bar { background-color: #fff; border: 1px solid #ccc; padding: 15px; margin-bottom: 20px; display: flex; align-items: flex-end; gap: 10px; border-top: 3px solid #00569e; flex-wrap: wrap; }
    .filter-group { display: flex; flex-direction: column; flex-grow: 1; }
    .filter-group label { font-size: 10px; font-weight: bold; margin-bottom: 3px; color: #555; }
    .filter-group input, .filter-group select { padding: 8px; border: 1px solid #ccc; font-size: 12px; font-weight: bold; width: 100%; box-sizing: border-box; height: 35px; }
    .btn-filtrar { background-color: #00569e; color: white; border: none; padding: 10px 15px; cursor: pointer; font-weight: bold; font-size: 11px; height: 35px; }
    .btn-atalho { background-color: #f4f4f4; color: #333; border: 1px solid #ccc; padding: 10px 15px; cursor: pointer; font-weight: bold; font-size: 11px; height: 35px; }
    .dashboard-cards { display: grid; grid-template-columns: repeat(4, 1fr); gap: 15px; margin-bottom: 20px; }
    .card { background-color: #fff; border: 1px solid #ccc; padding: 15px; border-left: 5px solid #00569e; box-sizing: border-box; }
    .card h3 { margin: 0; font-size: 9px; color: #777; }
    .card p { margin: 5px 0 0; font-size: 16px; font-weight: bold; font-family: monospace; }
    .report-section { background-color: #fff; border: 1px solid #ccc; margin-bottom: 20px; width: 100%; }
    .report-title { background-color: #333; color: #fff; padding: 10px; font-weight: bold; font-size: 11px; }
    .table-container { width: 100%; overflow-x: auto; }
    .table-report { width: 100%; border-collapse: collapse; font-size: 10px; min-width: 800px; }
    .table-report th { background-color: #f5f5f5; padding: 8px; border-bottom: 2px solid #ddd; text-align: left; }
    .table-report td { padding: 8px; border-bottom: 1px solid #eee; font-weight: bold; }
    .txt-entrada { color: green; }
    .txt-saida { color: red; }
    .bg-entrada { background-color: #c2f2c2; }
    .bg-saida { background-color: #ffcccc; }
    @media (max-width: 600px) {
        .filter-bar { flex-direction: column; align-items: stretch; }
        .dashboard-cards { grid-template-columns: repeat(2, 1fr); }
    }
    @media print { .filter-bar { display: none; } }
</style>

<div class="module-wrapper">
    <div style="font-weight: bold; font-size: 18px; margin-bottom: 15px; color: #00569e;">📊 RELATÓRIO TIPO LIVRO CAIXA</div>

    <form action="relatorios.php" method="POST" class="filter-bar">
        <div class="filter-group"><label>INÍCIO</label><input type="date" name="data_inicio" value="<?php echo $data_inicio; ?>"></div>
        <div class="filter-group"><label>FIM</label><input type="date" name="data_fim" value="<?php echo $data_fim; ?>"></div>
        
        <div class="filter-group">
            <label>TIPO</label>
            <select name="filtro_tipo">
                <option value="">TODOS</option>
                <option value="ENTRADA" <?php echo $filtro_tipo == 'ENTRADA' ? 'selected' : ''; ?>>ENTRADA</option>
                <option value="SAÍDA" <?php echo $filtro_tipo == 'SAÍDA' ? 'selected' : ''; ?>>SAÍDA</option>
            </select>
        </div>

        <div class="filter-group">
            <label>BUSCAR TUDO</label>
            <input type="text" name="filtro_busca" placeholder="PRODUTO, CLIENTE, USUÁRIO..." value="<?php echo $filtro_busca; ?>">
        </div>

        <button type="submit" class="btn-filtrar">🔍 FILTRAR</button>
        <button type="submit" name="periodo" value="hoje" class="btn-atalho">HOJE</button>
        <button type="submit" name="periodo" value="mes" class="btn-atalho">MÊS</button>
        <button type="submit" name="periodo" value="ano" class="btn-atalho">ANO</button>
        <button type="button" class="btn-atalho" onclick="window.print()" style="margin-left:auto;">🖨️ IMPRIMIR</button>
    </form>

    <div class="dashboard-cards">
        <div class="card"><h3>ENTRADAS</h3><p class="txt-entrada">R$ <?php echo number_format($faturamento, 2, ',', '.'); ?></p></div>
        <div class="card" style="border-left-color:red;"><h3>SAÍDAS</h3><p class="txt-saida">R$ <?php echo number_format($despesas, 2, ',', '.'); ?></p></div>
        <div class="card" style="border-left-color:green;"><h3>LUCRO</h3><p style="color:#00569e;">R$ <?php echo number_format($lucro_bruto, 2, ',', '.'); ?></p></div>
        <div class="card" style="border-left-color:purple;"><h3>REC. FIADO</h3><p style="color:purple;">R$ <?php echo number_format($total_rec_fiado, 2, ',', '.'); ?></p></div>
    </div>

    <div class="report-section">
        <div class="report-title">📝 DETALHAMENTO DE LANÇAMENTOS</div>
        <div class="table-container">
            <table class="table-report">
                <thead>
                    <tr>
                        <th>DATA/HORA</th>
                        <th>TIPO</th>
                        <th>USUÁRIO</th>
                        <th>CLIENTE/FORNECEDOR</th>
                        <th>DESCRIÇÃO/PRODUTO</th>
                        <th style="text-align: center;">FORMA</th>
                        <th style="text-align: right;">VALOR TOTAL</th>
                    </tr>
                </thead>
                <tbody>
                    <?php if($res_lancamentos && $res_lancamentos->num_rows > 0): 
                        while($l = $res_lancamentos->fetch_assoc()): 
                            $is_saida = ($l['TIPO'] == 'SAÍDA');
                    ?>
                    <tr class="<?php echo $is_saida ? 'bg-saida' : 'bg-entrada'; ?>">
                        <td><?php echo date('d/m/Y H:i', strtotime($l['DATA_MOVIMENTACAO'])); ?></td>
                        <td class="<?php echo $is_saida ? 'txt-saida' : 'txt-entrada'; ?>"><?php echo $l['TIPO']; ?></td>
                        <td><?php echo $l['USUARIO']; ?></td>
                        <td><?php echo $l['CLIENTE_FORNECEDOR']; ?></td>
                        <td><?php echo $l['PRODUTOS_UNIFICADOS']; ?></td>
                        <td style="text-align: center;"><?php echo $l['FORMA_PAGAMENTO']; ?></td>
                        <td style="text-align: right;" class="<?php echo $is_saida ? 'txt-saida' : 'txt-entrada'; ?>">
                            R$ <?php echo number_format($l['TOTAL_UNIFICADO'], 2, ',', '.'); ?>
                        </td>
                    </tr>
                    <?php endwhile; else: ?>
                    <tr><td colspan="7" style="text-align:center; padding:20px;">NENHUM LANÇAMENTO ENCONTRADO.</td></tr>
                    <?php endif; ?>
                </tbody>
            </table>
        </div>
    </div>
</div>