<?php
/**
 * Partial: barra de filtro com abas Ano + Mês + date picker para módulo financeiro.
 * Variáveis esperadas: $filtros (dataIni, dataFim, anos, anoSel), $actionUrl
 * Opcional: $mostrarDatePicker (bool, default true)
 */
$mostrarDatePicker = $mostrarDatePicker ?? true;
$nomeMeses = ['','Jan','Fev','Mar','Abr','Mai','Jun','Jul','Ago','Set','Out','Nov','Dez'];

$anoAtual = (int)substr($filtros['dataIni'] ?? date('Y-m-d'), 0, 4);
$anos     = $filtros['anos'] ?? [];
?>

<!-- Abas de Ano -->
<?php if ($anos): ?>
<div class="pbi-periodo-tabs mb-1">
    <?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 ?>"
       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['dataIni'] === $iniAno && $filtros['dataFim'] === $fimAno) ? ' active' : '';
    ?>
    <a href="<?= $actionUrl ?>?data_ini=<?= $iniAno ?>&data_fim=<?= $fimAno ?>"
       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['dataIni'] === $ini && $filtros['dataFim'] === $fim) ? ' active' : '';
    ?>
    <a href="<?= $actionUrl ?>?data_ini=<?= $ini ?>&data_fim=<?= $fim ?>"
       class="pbi-tab-mes<?= $ativo ?>"
       onclick="setPeriodoSession(<?= $anoAtual ?>, <?= $m ?>)"><?= $nomeMeses[$m] ?></a>
    <?php endfor; ?>
</div>
<?php endif; ?>

<?php if ($mostrarDatePicker): ?>
<!-- Filtro avançado: date picker -->
<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['dataIni'] ?? '') ?>">
        </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['dataFim'] ?? '') ?>">
        </div>
        <button type="submit" class="pbi-btn-filtrar">
            <i class="bi bi-funnel-fill"></i> Filtrar
        </button>
    </div>
</form>
<?php endif; ?>

<script>
if (typeof setPeriodoSession === 'undefined') {
    function setPeriodoSession(ano, mes) {
        var fd = new FormData();
        fd.append('ano', ano);
        fd.append('mes', mes);
        fd.append('redirect', window.location.pathname);
        navigator.sendBeacon('/set-periodo', fd);
    }
}
</script>
