<?php
require_once __DIR__ . '/../includes/header.php';

$mes = intval($_GET['mes'] ?? date('m'));
$ano = intval($_GET['ano'] ?? date('Y'));

// Receitas do mês (pagas)
$stmt_rec = $pdo->prepare("SELECT DAY(data_pagamento) as dia, SUM(valor_pago) as total
    FROM contas_receber WHERE status='pago' AND MONTH(data_pagamento)=:m AND YEAR(data_pagamento)=:a
    GROUP BY DAY(data_pagamento) ORDER BY dia");
$stmt_rec->execute(['m'=>$mes,'a'=>$ano]);
$receitas_dia = $stmt_rec->fetchAll(PDO::FETCH_KEY_PAIR);

// Despesas do mês (pagas)
$stmt_desp = $pdo->prepare("SELECT DAY(data_pagamento) as dia, SUM(valor_pago) as total
    FROM contas_pagar WHERE status='pago' AND MONTH(data_pagamento)=:m AND YEAR(data_pagamento)=:a
    GROUP BY DAY(data_pagamento) ORDER BY dia");
$stmt_desp->execute(['m'=>$mes,'a'=>$ano]);
$despesas_dia = $stmt_desp->fetchAll(PDO::FETCH_KEY_PAIR);

// Totais
$total_receitas = $pdo->prepare("SELECT COALESCE(SUM(valor_pago),0) FROM contas_receber WHERE status='pago' AND MONTH(data_pagamento)=:m AND YEAR(data_pagamento)=:a");
$total_receitas->execute(['m'=>$mes,'a'=>$ano]);
$t_rec = $total_receitas->fetchColumn();

$total_despesas = $pdo->prepare("SELECT COALESCE(SUM(valor_pago),0) FROM contas_pagar WHERE status='pago' AND MONTH(data_pagamento)=:m AND YEAR(data_pagamento)=:a");
$total_despesas->execute(['m'=>$mes,'a'=>$ano]);
$t_desp = $total_despesas->fetchColumn();

$saldo = $t_rec - $t_desp;

// Pendentes
$pend_receber = $pdo->query("SELECT COALESCE(SUM(valor - COALESCE(valor_pago,0)),0) FROM contas_receber WHERE status='pendente'")->fetchColumn();
$pend_pagar = $pdo->query("SELECT COALESCE(SUM(valor - COALESCE(valor_pago,0)),0) FROM contas_pagar WHERE status='pendente'")->fetchColumn();

// Dados para gráfico
$dias_mes = cal_days_in_month(CAL_GREGORIAN, $mes, $ano);
$labels = []; $data_rec = []; $data_desp = [];
for ($d = 1; $d <= $dias_mes; $d++) {
    $labels[] = str_pad($d, 2, '0', STR_PAD_LEFT);
    $data_rec[] = floatval($receitas_dia[$d] ?? 0);
    $data_desp[] = floatval($despesas_dia[$d] ?? 0);
}

$meses_nome = ['','Janeiro','Fevereiro','Marco','Abril','Maio','Junho','Julho','Agosto','Setembro','Outubro','Novembro','Dezembro'];
?>

<div class="page-header">
    <div>
        <h2>Fluxo de Caixa</h2>
        <div class="subtitle"><?= $meses_nome[$mes] ?> / <?= $ano ?></div>
    </div>
</div>

<!-- Filtro de Mês -->
<form method="GET" class="filtros-bar">
    <div class="form-group" style="max-width:150px;">
        <label>Mes</label>
        <select name="mes">
            <?php for ($m = 1; $m <= 12; $m++): ?>
            <option value="<?= $m ?>" <?= $m==$mes?'selected':'' ?>><?= $meses_nome[$m] ?></option>
            <?php endfor; ?>
        </select>
    </div>
    <div class="form-group" style="max-width:120px;">
        <label>Ano</label>
        <select name="ano">
            <?php for ($a = date('Y')-2; $a <= date('Y')+1; $a++): ?>
            <option value="<?= $a ?>" <?= $a==$ano?'selected':'' ?>><?= $a ?></option>
            <?php endfor; ?>
        </select>
    </div>
    <div class="form-group" style="max-width:100px;">
        <label>&nbsp;</label>
        <button class="btn btn-primary w-100">Filtrar</button>
    </div>
</form>

<!-- KPIs -->
<div class="grid-5 mb-3">
    <div class="card-kpi green">
        <div class="kpi-label">Receitas</div>
        <div class="kpi-value"><?= moeda($t_rec) ?></div>
    </div>
    <div class="card-kpi red">
        <div class="kpi-label">Despesas</div>
        <div class="kpi-value"><?= moeda($t_desp) ?></div>
    </div>
    <div class="card-kpi <?= $saldo >= 0 ? 'blue' : 'red' ?>">
        <div class="kpi-label">Saldo</div>
        <div class="kpi-value"><?= moeda($saldo) ?></div>
    </div>
    <div class="card-kpi yellow">
        <div class="kpi-label">A Receber</div>
        <div class="kpi-value"><?= moeda($pend_receber) ?></div>
    </div>
    <div class="card-kpi purple">
        <div class="kpi-label">A Pagar</div>
        <div class="kpi-value"><?= moeda($pend_pagar) ?></div>
    </div>
</div>

<!-- Gráfico -->
<div class="card-premium mb-3">
    <canvas id="chartFluxo" height="100"></canvas>
</div>

<script src="https://cdn.jsdelivr.net/npm/chart.js@4"></script>
<script>
const ctx = document.getElementById('chartFluxo').getContext('2d');
new Chart(ctx, {
    type: 'bar',
    data: {
        labels: <?= json_encode($labels) ?>,
        datasets: [
            {
                label: 'Receitas',
                data: <?= json_encode($data_rec) ?>,
                backgroundColor: 'rgba(34,197,94,0.6)',
                borderColor: '#22c55e',
                borderWidth: 1,
                borderRadius: 4
            },
            {
                label: 'Despesas',
                data: <?= json_encode($data_desp) ?>,
                backgroundColor: 'rgba(239,68,68,0.6)',
                borderColor: '#ef4444',
                borderWidth: 1,
                borderRadius: 4
            }
        ]
    },
    options: {
        responsive: true,
        plugins: {
            legend: { labels: { color: '#94a3b8' } }
        },
        scales: {
            x: { ticks: { color: '#64748b' }, grid: { color: 'rgba(30,41,59,0.5)' } },
            y: { ticks: { color: '#64748b', callback: v => 'R$ ' + v.toLocaleString('pt-BR') }, grid: { color: 'rgba(30,41,59,0.5)' } }
        }
    }
});
</script>

<?php require_once __DIR__ . '/../includes/footer.php'; ?>
