<?php
/**
 * Partial: barra de filtro com abas Ano + Mês + data picker + vendedor.
 * Variáveis: $filtros, $actionUrl, $mostrarVendedor (bool, default true)
 */
$mostrarVendedor = $mostrarVendedor ?? true;
$nomeMeses = ['','Jan','Fev','Mar','Abr','Mai','Jun','Jul','Ago','Set','Out','Nov','Dez'];

$anoAtual = substr($filtros['data_ini'], 0, 4);
$mesAtual = (int)substr($filtros['data_ini'], 5, 2);
$anos     = $filtros['anos'] ?? [];
$vend     = $filtros['vendedor'] ? '&vendedor=' . $filtros['vendedor'] : '';
$usr      = ($filtros['usuario'] ?? '') ? '&usuario=' . urlencode($filtros['usuario']) : '';
?>

<!-- Abas de Ano -->
<?php if ($anos): ?>
<div class="pbi-periodo-tabs mb-1">
    <?php
    $hoje     = date('Y-m-d');
    $isHoje   = ($filtros['data_ini'] === $hoje && $filtros['data_fim'] === $hoje);
    ?>
    <a href="<?= $actionUrl ?>?data_ini=<?= $hoje ?>&data_fim=<?= $hoje ?><?= $vend ?><?= $usr ?>"
       class="pbi-tab-ano<?= $isHoje ? ' active' : '' ?>">
        <i class="bi bi-broadcast me-1"></i>Hoje
    </a>
    <?php foreach ($anos as $a): ?>
    <?php
        $ini = "{$a}-01-01"; $fim = "{$a}-12-31";
        $ativo = ($anoAtual == $a) ? ' active' : '';
    ?>
    <a href="<?= $actionUrl ?>?data_ini=<?= $ini ?>&data_fim=<?= $fim ?><?= $vend ?><?= $usr ?>"
       class="pbi-tab-ano<?= $ativo ?>"
       onclick="setPeriodoSession(<?= $a ?>, 0)"><?= $a ?></a>
    <?php endforeach; ?>
</div>

<!-- Abas de Mês (do ano selecionado) -->
<div class="pbi-periodo-tabs mb-2">
    <?php
    $iniAno = "{$anoAtual}-01-01"; $fimAno = "{$anoAtual}-12-31";
    $atvAno = ($filtros['data_ini'] === $iniAno && $filtros['data_fim'] === $fimAno) ? ' active' : '';
    ?>
    <a href="<?= $actionUrl ?>?data_ini=<?= $iniAno ?>&data_fim=<?= $fimAno ?><?= $vend ?><?= $usr ?>"
       class="pbi-tab-mes<?= $atvAno ?>"
       onclick="setPeriodoSession(<?= $anoAtual ?>, 0)">Ano todo</a>
    <?php for ($m = 1; $m <= 12; $m++):
        $ini = sprintf('%04d-%02d-01', $anoAtual, $m);
        $fim = date('Y-m-t', strtotime($ini));
        $ativo = ($filtros['data_ini'] === $ini && $filtros['data_fim'] === $fim) ? ' active' : '';
    ?>
    <a href="<?= $actionUrl ?>?data_ini=<?= $ini ?>&data_fim=<?= $fim ?><?= $vend ?><?= $usr ?>"
       class="pbi-tab-mes<?= $ativo ?>"
       onclick="setPeriodoSession(<?= $anoAtual ?>, <?= $m ?>)"><?= $nomeMeses[$m] ?></a>
    <?php endfor; ?>
</div>
<?php endif; ?>

<!-- Filtro avançado: data picker + vendedor -->
<form method="get" action="<?= $actionUrl ?>" class="pbi-filtro-vendas mb-3">
    <div class="pbi-filtro-row">
        <div class="pbi-filtro-field">
            <label class="pbi-filtro-label">De</label>
            <input type="date" name="data_ini" class="pbi-filtro-input"
                   value="<?= \App\Core\View::e($filtros['data_ini']) ?>">
        </div>
        <div class="pbi-filtro-field">
            <label class="pbi-filtro-label">Até</label>
            <input type="date" name="data_fim" class="pbi-filtro-input"
                   value="<?= \App\Core\View::e($filtros['data_fim']) ?>">
        </div>
        <?php if (!empty($filtros['usuarios'])): ?>
        <div class="pbi-filtro-field">
            <label class="pbi-filtro-label">Usuário</label>
            <select name="usuario" class="pbi-filtro-input">
                <option value="">Todos</option>
                <?php foreach ($filtros['usuarios'] as $u): ?>
                <option value="<?= \App\Core\View::e($u['USUARIO']) ?>"
                    <?= ($filtros['usuario'] ?? '') === $u['USUARIO'] ? 'selected' : '' ?>>
                    <?= \App\Core\View::e($u['USUARIO']) ?>
                </option>
                <?php endforeach; ?>
            </select>
        </div>
        <?php endif; ?>
        <?php if ($mostrarVendedor && !empty($filtros['vendedores'])): ?>
        <div class="pbi-filtro-field">
            <label class="pbi-filtro-label">Vendedor</label>
            <select name="vendedor" class="pbi-filtro-input">
                <option value="">Todos</option>
                <?php foreach ($filtros['vendedores'] as $v): ?>
                <option value="<?= (int)$v['COD_PESSOA_VENDA'] ?>"
                    <?= $filtros['vendedor'] == $v['COD_PESSOA_VENDA'] ? 'selected' : '' ?>>
                    <?= \App\Core\View::e($v['NOME']) ?>
                </option>
                <?php endforeach; ?>
            </select>
        </div>
        <?php endif; ?>
        <button type="submit" class="pbi-btn-filtrar">
            <i class="bi bi-funnel-fill"></i> Filtrar
        </button>
    </div>
</form>

<script>
function setPeriodoSession(ano, mes) {
    // Atualiza session em background sem bloquear a navegação do link
    var fd = new FormData();
    fd.append('ano', ano);
    fd.append('mes', mes);
    fd.append('redirect', window.location.pathname);
    navigator.sendBeacon('/set-periodo', fd);
}
</script>
