<div class="row">
    <div class="col-12">
        <div id="accordion" class="mb-3">
            <div class="card">
                <div class="card-header" id="headingOne">
                    <h5 class="mb-0" style="color: #000;">
                        <button class="btn btn-link" data-toggle="collapse" data-target="#collapseOne" aria-expanded="true" aria-controls="collapseOne">
                            <span style="color: #000;">+ Crescimento Mensal</span>
                        </button>
                    </h5>
                </div>
                <div id="collapseOne" class="collapse show" aria-labelledby="headingOne" data-parent="#accordion">
                    <div class="card-body">

                        <!-- Cabeçalho da tabela (HTML fixo) -->

                        <?php

                        // Obtendo os anos da URL, convertendo-os em inteiros e ordenando-os
                        $totaisAnos = array_slice(array_map('intval', (array)$_GET['ano']), 0, 2);
                        sort($totaisAnos);
                        $anoMenor = $totaisAnos[0];
                        $anoMaior = $totaisAnos[1];
                        $ano_anterior_ao_menor = $anoMenor - 1;
                        ?>

                        <h3 style="text-align: center;">Comparativo Mês A Mês</h3>
                        <br>
                        <table class="table table-striped table-bordered dt-responsive nowrap">
                            <thead>
                                <tr>
                                    <th style="text-align: center;">Meses</th>
                                    <th style="text-align: center;">Valor Total <?= $anoMenor ?></th>
                                    <th style="text-align: center;">Valor Total <?= $anoMaior ?></th>
                                    <th style="text-align: center;">Comparativo Mensal (%)</th>
                                </tr>
                            </thead>
                            <tbody>
                                <?php
                                // Inicialização de variáveis
                                $totais = [];
                                $dadosManipulados = [];
                                $dadosMarcaPropria = [];
                                $dadosRevenda = [];

                                $cidadeEscapada = $_GET['cidade'] ?? ''; // Proteção contra valores indefinidos

                                // $cidades é um array, não um objeto com método listarCidades
                                // Vamos buscar a cidade diretamente no array
                                $id_Cidade = [];
                                if (!empty($cidadeEscapada) && isset($cidades)) {
                                    foreach ($cidades as $cidade) {
                                        if (stripos($cidade['nome_cidade'], $cidadeEscapada) !== false) {
                                            $id_Cidade = [$cidade];
                                            break;
                                        }
                                    }
                                }

                                // Definir os meses em ordem
                                $meses = [
                                    1 => 'janeiro',
                                    2 => 'fevereiro',
                                    3 => 'março',
                                    4 => 'abril',
                                    5 => 'maio',
                                    6 => 'junho',
                                    7 => 'julho',
                                    8 => 'agosto',
                                    9 => 'setembro',
                                    10 => 'outubro',
                                    11 => 'novembro',
                                    12 => 'dezembro'
                                ];

                                // Iterar por cada mês e executar as consultas
                                foreach ($meses as $numeroMes => $nomeMes) {
                                    // Obter o valor de busca_gestao da URL ou definir como 1 por padrão
                                    $buscaGestao = isset($_GET['busca_gestao']) ? intval($_GET['busca_gestao']) : 1;

                                    // Realizar as consultas de acordo com o valor de busca_gestao
                                    if ($buscaGestao === 1 || $buscaGestao === 2) {

                                        $resultManipulado = $consultaDadosPerformance->consultaManipulado($totaisAnos, $numeroMes, $filial);
                                        if ($resultManipulado) {
                                            while ($row = ibase_fetch_assoc($resultManipulado)) {
                                                $dadosManipulados[] = $row;
                                                $consultaDadosPerformance->adicionarValores($totais, $row, 'manipulado');
                                            }
                                        }
                                    }

                                    if ($buscaGestao === 1 || $buscaGestao === 4) {
                                        $resultMarcaPropria = $consultaDadosPerformance->consultaMarcaPropria($totaisAnos, $numeroMes, $filial);
                                        if ($resultMarcaPropria) {
                                            while ($row = ibase_fetch_assoc($resultMarcaPropria)) {
                                                $dadosMarcaPropria[] = $row;
                                                $consultaDadosPerformance->adicionarValores($totais, $row, 'marca');
                                            }
                                        }
                                    }

                                    if ($buscaGestao === 1 || $buscaGestao === 3) {

                                        //print_r($filial);
                                        $resultRevenda = $consultaDadosPerformance->consultaRevenda($totaisAnos, $numeroMes, $filial);
                                        if ($resultRevenda) {
                                            while ($row = ibase_fetch_assoc($resultRevenda)) {
                                                $dadosRevenda[] = $row;
                                                $consultaDadosPerformance->adicionarValores($totais, $row, 'revenda');
                                            }
                                        }
                                    }

                                    // Recupera os totais para o mês atual dos dois anos
                                    $valorMesAnoMaior = 0;
                                    $valorMesAnoMenor = 0;

                                    // Para o ano maior
                                    if (isset($totais[$anoMaior])) {
                                        $mesNormalizado = retiraAcento(ucfirst($nomeMes));
                                        $valorMesAnoMaior = $totais[$anoMaior]["VALOR_RECEBIDO_" . strtoupper($mesNormalizado)] ?? 0;
                                    }

                                    // Para o ano menor
                                    if (isset($totais[$anoMenor])) {
                                        $mesNormalizado = retiraAcento(ucfirst($nomeMes));
                                        $valorMesAnoMenor = $totais[$anoMenor]["VALOR_RECEBIDO_" . strtoupper($mesNormalizado)] ?? 0;
                                    }

                                    // Calcular dias úteis para o ano maior e ano menor
                                    $periodo = 'mes';
                                    $idCidade = $id_Cidade[0]['id_cidade'] ?? 0; // Proteção contra array vazio
                                    $diasUteisMaiorAno = $Configuracoes->getPesoUltimoDia($numeroMes, $anoMaior, $idCidade, $periodo);
                                    $diasUteisMenorAno = $Configuracoes->getPesoUltimoDia($numeroMes, $anoMenor, $idCidade, $periodo);

                                    // Calcular comparativo mensal entre os anos
                                    $comparativoMensal = 0;
                                    if ($valorMesAnoMenor > 0 && $valorMesAnoMaior != null) {
                                        $comparativoMensal = (($valorMesAnoMaior - $valorMesAnoMenor) / $valorMesAnoMenor) * 100;
                                    }
                                ?>
                                    <tr>
                                        <td style="text-align: center;"><?= ucfirst($nomeMes) ?></td>
                                        <td style="text-align: center;">R$ <?= number_format($valorMesAnoMenor, 2, ',', '.'); ?></td>
                                        <td style="text-align: center;">R$ <?= number_format($valorMesAnoMaior, 2, ',', '.'); ?></td>
                                        <td style="border-radius: 5px; padding: 5px; text-align: center;">
                                            <?php
                                            // Definir a cor do texto e do background com base no valor do comparativo
                                            if ($comparativoMensal > 0) {
                                                $color = "green"; // Cor do texto para valor positivo
                                                $backgroundColor = "#d4edda"; // Fundo verde claro
                                                $formattedValue = "+" . number_format($comparativoMensal, 2, ',', '.') . "%";
                                            } elseif ($comparativoMensal < 0) {
                                                $color = "red"; // Cor do texto para valor negativo
                                                $backgroundColor = "#f8d7da"; // Fundo vermelho claro
                                                $formattedValue = number_format($comparativoMensal, 2, ',', '.') . "%";
                                            } else {
                                                $color = "black"; // Cor do texto para valor 0%
                                                $backgroundColor = "#f8f9fa"; // Fundo cinza claro
                                                $formattedValue = "0%";
                                            }
                                            ?>
                                            <span style="color: <?= $color ?>; background-color: <?= $backgroundColor ?>; padding: 3px 8px; border-radius: 5px;">
                                                <?= $formattedValue ?>
                                            </span>
                                        </td>
                                    </tr>
                                <?php
                                }
                                ?>
                            </tbody>
                        </table>
                        <br>
                        <div style="overflow-x: auto; max-width: 100%;">

                            <h3 style="text-align: center;">Comparativo Meses Anteriores</h3>
                            <br>
                            <table class="table table-striped table-bordered dt-responsive nowrap" style="width: 100%; table-layout: fixed;">
                                <thead style="position: sticky; top: 0; background-color: #f8f9fa; z-index: 1;">
                                    <tr>
                                        <th style="text-align: center;">Meses Comparados</th>
                                        <th style="text-align: center;">Valor Total Mês Anterior</th>
                                        <th style="text-align: center;">Valor Total Mês Atual</th>
                                        <th style="text-align: center;">Comparativo (%)</th>
                                    </tr>
                                </thead>
                                <tbody>
                                    <?php
                                    // Ano anterior ao anoMenor
                                    $anoAnterioraoMenor = $anoMenor - 1;

                                    // Iniciar com dezembro do ano anterior ao anoMenor
                                    $valorMesAnterior = $totais[$anoAnterioraoMenor]["VALOR_RECEBIDO_DEZEMBRO"] ?? 0;
                                    $mesAnteriorNome = 'dezembro ' . $anoAnterioraoMenor;

                                    // Função para processar meses e gerar linhas da tabela
                                    function processarMeses($meses, $ano, &$valorMesAnterior, &$mesAnteriorNome, $totais)
                                    {
                                        foreach ($meses as $numeroMes => $nomeMes) {
                                            $valorMesAtual = $totais[$ano]["VALOR_RECEBIDO_" . strtoupper(retiraAcento(ucfirst($nomeMes)))] ?? null;
                                            $mesAtualNome = $nomeMes . ' ' . $ano;

                                            // Cálculo do comparativo mensal
                                            $comparativoMensal = 0;
                                            if ($valorMesAtual != null) {
                                                $comparativoMensal = $valorMesAnterior > 0 ? (($valorMesAtual - $valorMesAnterior) / $valorMesAnterior) * 100 : 0;
                                            }

                                            // Definir cores e estilos
                                            if ($comparativoMensal > 0) {
                                                $color = "green";
                                                $backgroundColor = "#d4edda";
                                                $formattedValue = "+" . number_format($comparativoMensal, 2, ',', '.') . "%";
                                            } elseif ($comparativoMensal < 0) {
                                                $color = "red";
                                                $backgroundColor = "#f8d7da";
                                                $formattedValue = number_format($comparativoMensal, 2, ',', '.') . "%";
                                            } else {
                                                $color = "black";
                                                $backgroundColor = "#f8f9fa";
                                                $formattedValue = "0%";
                                            }

                                            // Renderizar linha
                                            echo "<tr>
                        <td style='text-align: center;'>{$mesAnteriorNome} / {$mesAtualNome}</td>
                        <td style='text-align: center;'>R$ " . number_format($valorMesAnterior, 2, ',', '.') . "</td>
                        <td style='text-align: center;'>R$ " . number_format($valorMesAtual, 2, ',', '.') . "</td>
                        <td style='border-radius: 5px; padding: 3px; text-align: center;'>
                            <span style='color: {$color}; background-color: {$backgroundColor}; padding: 2px 6px; border-radius: 5px;'>{$formattedValue}</span>
                        </td>
                    </tr>";

                                            // Atualizar o valor e o nome do mês anterior
                                            $valorMesAnterior = $valorMesAtual;
                                            $mesAnteriorNome = $mesAtualNome;
                                        }
                                    }

                                    // Meses do anoMenor (em ordem crescente)
                                    $mesesAnoMenor = [
                                        1 => 'janeiro',
                                        2 => 'fevereiro',
                                        3 => 'março',
                                        4 => 'abril',
                                        5 => 'maio',
                                        6 => 'junho',
                                        7 => 'julho',
                                        8 => 'agosto',
                                        9 => 'setembro',
                                        10 => 'outubro',
                                        11 => 'novembro',
                                        12 => 'dezembro'
                                    ];

                                    // Processar meses do anoMenor
                                    processarMeses($mesesAnoMenor, $anoMenor, $valorMesAnterior, $mesAnteriorNome, $totais);

                                    // Meses do anoMaior (em ordem crescente)
                                    $mesesAnoMaior = [
                                        1 => 'janeiro',
                                        2 => 'fevereiro',
                                        3 => 'março',
                                        4 => 'abril',
                                        5 => 'maio',
                                        6 => 'junho',
                                        7 => 'julho',
                                        8 => 'agosto',
                                        9 => 'setembro',
                                        10 => 'outubro',
                                        11 => 'novembro',
                                        12 => 'dezembro'
                                    ];

                                    // Processar meses do anoMaior
                                    processarMeses($mesesAnoMaior, $anoMaior, $valorMesAnterior, $mesAnteriorNome, $totais);
                                    ?>
                                </tbody>
                            </table>
                        </div>
                    </div>
                </div>
            </div>

            <div class="card">
                <div class="card-header" id="headingTwo">
                    <h5 class="mb-0">
                        <button class="btn btn-link collapsed" data-toggle="collapse" data-target="#collapseTwo" aria-expanded="false" aria-controls="collapseTwo">
                            <span style="color: #000;">+ Crescimento Trimestral</span>
                        </button>
                    </h5>
                </div>
                <div id="collapseTwo" class="collapse" aria-labelledby="headingTwo" data-parent="#accordion">
                    <div class="card-body">

                        <?php
                        $totaisAnos = array_slice(array_map('intval', (array)$_GET['ano']), 0, 2);
                        sort($totaisAnos);
                        $anoMenor = $totaisAnos[0];
                        $anoMaior = $totaisAnos[1];

                        // Definindo os trimestres
                        $trimestres = [
                            1 => ['Janeiro', 'Fevereiro', 'Março'],
                            2 => ['Abril', 'Maio', 'Junho'],
                            3 => ['Julho', 'Agosto', 'Setembro'],
                            4 => ['Outubro', 'Novembro', 'Dezembro']
                        ];
                        ?>
                        <h3 style="text-align: center;">Comparativo Trimestre (mesmo período)</h3>
                        <br>
                        <table class="table table-striped table-bordered dt-responsive nowrap" style="width:100%">
                            <thead>
                                <tr>
                                    <th style="text-align: center;">Trimestre</th>
                                    <th style="text-align: center;">Valor Total Acumulado <?= $anoMenor ?></th>
                                    <th style="text-align: center;">Valor Média <?= $anoMenor ?></th>
                                    <th style="text-align: center;">Valor Total Acumulado <?= $anoMaior ?></th>
                                    <th style="text-align: center;">Valor Média <?= $anoMaior ?></th>
                                    <th style="text-align: center;">Comparativo Trimestre (<?= $anoMenor ?> X <?= $anoMaior ?>) (%)</th>
                                </tr>
                            </thead>
                            <tbody>
                                <?php
                                // Função para calcular valores acumulados e médias
                                function calcularValores($totais, $ano, $meses)
                                {
                                    $valorTotal = 0;
                                    $quantidadeTotal = 0;

                                    foreach ($meses as $mes) {
                                        $mesNormalizado = retiraAcento($mes);
                                        $valorTotal += $totais[$ano]["VALOR_RECEBIDO_" . strtoupper($mesNormalizado)] ?? 0;
                                        $quantidadeTotal += $totais[$ano]["QUANTIDADE_" . strtoupper($mesNormalizado)] ?? 0;
                                    }

                                    $media = count($meses) > 0 ? $valorTotal / count($meses) : 0;
                                    return [$valorTotal, $media];
                                }

                                // Processar trimestres
                                foreach ($trimestres as $numeroTrimestre => $meses) {
                                    // Calcular valores para ano menor
                                    list($valorTrimestreAnoMenor, $mediaTrimestreAnoMenor) = calcularValores($totais, $anoMenor, $meses);

                                    // Calcular valores para ano maior
                                    list($valorTrimestreAnoMaior, $mediaTrimestreAnoMaior) = calcularValores($totais, $anoMaior, $meses);

                                    // Calcular comparativo entre trimestres
                                    $comparativoTrimestre = 0;
                                    if ($valorTrimestreAnoMaior != null) {
                                        $comparativoTrimestre = $valorTrimestreAnoMenor > 0
                                            ? (($valorTrimestreAnoMaior - $valorTrimestreAnoMenor) / $valorTrimestreAnoMenor) * 100
                                            : 0;
                                    }

                                    // Determinar estilos para o comparativo
                                    if ($comparativoTrimestre > 0) {
                                        $color = "green";
                                        $backgroundColor = "#d4edda";
                                        $formattedValue = "+" . number_format($comparativoTrimestre, 2, ',', '.') . "%";
                                    } elseif ($comparativoTrimestre < 0) {
                                        $color = "red";
                                        $backgroundColor = "#f8d7da";
                                        $formattedValue = number_format($comparativoTrimestre, 2, ',', '.') . "%";
                                    } else {
                                        $color = "black";
                                        $backgroundColor = "#f8f9fa";
                                        $formattedValue = "0%";
                                    }
                                ?>
                                    <tr>
                                        <td style="text-align: center;"><?= $numeroTrimestre ?>° Trimestre</td>
                                        <td style="text-align: center;">R$ <?= number_format($valorTrimestreAnoMenor, 2, ',', '.'); ?></td>
                                        <td style="text-align: center;">R$ <?= number_format($mediaTrimestreAnoMenor, 2, ',', '.'); ?></td>
                                        <td style="text-align: center;">R$ <?= number_format($valorTrimestreAnoMaior, 2, ',', '.'); ?></td>
                                        <td style="text-align: center;">R$ <?= number_format($mediaTrimestreAnoMaior, 2, ',', '.'); ?></td>
                                        <td style="border-radius: 5px; padding: 5px; text-align: center;">
                                            <span style="color: <?= $color ?>; background-color: <?= $backgroundColor ?>; padding: 3px 8px; border-radius: 5px;">
                                                <?= $formattedValue ?>
                                            </span>
                                        </td>
                                    </tr>
                                <?php
                                }
                                ?>
                            </tbody>
                        </table>


                        <br>
                        <h3 style="text-align: center;">Comparativo Trimestre (período anterior)</h3>
                        <br>

                        <table class="table table-striped table-bordered dt-responsive nowrap" style="width: 100%; table-layout: fixed;">
                            <thead style="position: sticky; top: 0; background-color: #f8f9fa; z-index: 1;">
                                <tr>
                                    <th style="text-align: center;">Trimestres Comparados</th>
                                    <th style="text-align: center;">Valor Total Trimestre Anterior</th>
                                    <th style="text-align: center;">Valor Total Trimestre Atual</th>
                                    <th style="text-align: center;">Comparativo (%)</th>
                                </tr>
                            </thead>
                            <tbody>
                                <?php
                                // Meses que correspondem a cada trimestre
                                $trimestres = [
                                    1 => ['janeiro', 'fevereiro', 'março'],
                                    2 => ['abril', 'maio', 'junho'],
                                    3 => ['julho', 'agosto', 'setembro'],
                                    4 => ['outubro', 'novembro', 'dezembro'],
                                ];

                                for ($numeroTrimestre = 1; $numeroTrimestre <= 4; $numeroTrimestre++) {
                                    // Trimestre atual (sempre do ano maior)
                                    $valorTrimestreAtual = 0;
                                    foreach ($trimestres[$numeroTrimestre] as $mes) {
                                        $valorTrimestreAtual += $totais[$anoMaior]["VALOR_RECEBIDO_" . strtoupper(retiraAcento(ucfirst($mes)))] ?? null;
                                    }

                                    // Trimestre anterior (pode ser do ano menor ou maior, dependendo do caso)
                                    $valorTrimestreAnterior = 0;
                                    if ($numeroTrimestre == 1) {
                                        // 4º Trimestre do ano anterior
                                        foreach ($trimestres[4] as $mes) {
                                            $valorTrimestreAnterior += $totais[$anoMaior - 1]["VALOR_RECEBIDO_" . strtoupper(retiraAcento(ucfirst($mes)))] ?? 0;
                                        }
                                    } else {
                                        // Trimestres do mesmo ano
                                        foreach ($trimestres[$numeroTrimestre - 1] as $mes) {
                                            $valorTrimestreAnterior += $totais[$anoMaior]["VALOR_RECEBIDO_" . strtoupper(retiraAcento(ucfirst($mes)))] ?? 0;
                                        }
                                    }

                                    // Calcular o comparativo percentual
                                    $comparativoTrimestre = 0;
                                    if ($valorTrimestreAtual != null) {
                                        if ($valorTrimestreAnterior > 0) {
                                            $comparativoTrimestre = (($valorTrimestreAtual - $valorTrimestreAnterior) / $valorTrimestreAnterior) * 100;
                                        }
                                    }

                                    // Determinar os anos para exibição
                                    $anoTrimestreAnterior = $numeroTrimestre == 1 ? $anoMaior - 1 : $anoMaior;
                                    $anoTrimestreAtual = $anoMaior;

                                    $nomeTrimestreAnterior = ($numeroTrimestre == 1) ? "4º Trimestre $anoTrimestreAnterior" : (($numeroTrimestre - 1) . "º Trimestre $anoTrimestreAnterior");
                                    $nomeTrimestreAtual = "$numeroTrimestre Trimestre $anoTrimestreAtual";

                                    // Definir estilos para o comparativo
                                    if ($comparativoTrimestre > 0) {
                                        $color = "green";
                                        $backgroundColor = "#d4edda";
                                        $formattedValue = "+" . number_format($comparativoTrimestre, 2, ',', '.') . "%";
                                    } elseif ($comparativoTrimestre < 0) {
                                        $color = "red";
                                        $backgroundColor = "#f8d7da";
                                        $formattedValue = number_format($comparativoTrimestre, 2, ',', '.') . "%";
                                    } else {
                                        $color = "black";
                                        $backgroundColor = "#f8f9fa";
                                        $formattedValue = "0%";
                                    }
                                ?>
                                    <tr>
                                        <td style="text-align: center;"><?= $nomeTrimestreAnterior ?> / <?= $nomeTrimestreAtual ?></td>
                                        <td style="text-align: center;">R$ <?= number_format($valorTrimestreAnterior, 2, ',', '.'); ?></td>
                                        <td style="text-align: center;">R$ <?= number_format($valorTrimestreAtual, 2, ',', '.'); ?></td>
                                        <td style="border-radius: 5px; padding: 3px; text-align: center;">
                                            <span style="color: <?= $color ?>; background-color: <?= $backgroundColor ?>; padding: 2px 6px; border-radius: 5px;">
                                                <?= $formattedValue ?>
                                            </span>
                                        </td>
                                    </tr>
                                <?php
                                }
                                ?>
                            </tbody>
                        </table>

                    </div>
                </div>
            </div>
            <div class="card">
                <div class="card-header" id="headingThree">
                    <h5 class="mb-0">
                        <button class="btn btn-link collapsed" data-toggle="collapse" data-target="#collapseThree" aria-expanded="false" aria-controls="collapseThree">
                            <span style="color: #000;">+ Crescimento Semestral</span>
                        </button>
                    </h5>
                </div>
                <div id="collapseThree" class="collapse" aria-labelledby="headingThree" data-parent="#accordion">
                    <div class="card-body">

                        <?php
                        $totaisAnos = array_slice(array_map('intval', (array)$_GET['ano']), 0, 2);
                        sort($totaisAnos);
                        $anoMenor = $totaisAnos[0];
                        $anoMaior = $totaisAnos[1];

                        // Definindo os semestres
                        $semestres = [
                            1 => ['Janeiro', 'Fevereiro', 'Março', 'Abril', 'Maio', 'Junho'],
                            2 => ['Julho', 'Agosto', 'Setembro', 'Outubro', 'Novembro', 'Dezembro']
                        ];
                        ?>
                        <h3 style="text-align: center;">Comparativo Semestral (mesmo período)</h3>
                        <br>
                        <table class="table table-striped table-bordered dt-responsive nowrap" style="width: 100%;">
                            <thead>
                                <tr>
                                    <th style="text-align: center;">Semestre</th>
                                    <th style="text-align: center;">Valor Total Acumulado <?= $anoMenor ?></th>
                                    <th style="text-align: center;">Valor Média <?= $anoMenor ?></th>
                                    <th style="text-align: center;">Valor Total Acumulado <?= $anoMaior ?></th>
                                    <th style="text-align: center;">Valor Média <?= $anoMaior ?></th>
                                    <th style="text-align: center;">Comparativo Semestre (<?= $anoMenor ?> X <?= $anoMaior ?>) (%)</th>
                                </tr>
                            </thead>
                            <tbody>
                                <?php
                                // Função para calcular valores acumulados e médias
                                if (!function_exists('calcularValores')) {
                                    function calcularValores($totais, $ano, $meses)
                                    {
                                        $valorTotal = 0;
                                        $quantidadeTotal = 0;

                                        foreach ($meses as $mes) {
                                            $mesNormalizado = retiraAcento($mes);
                                            $valorTotal += $totais[$ano]["VALOR_RECEBIDO_" . strtoupper($mesNormalizado)] ?? 0;
                                            $quantidadeTotal += $totais[$ano]["QUANTIDADE_" . strtoupper($mesNormalizado)] ?? 0;
                                        }

                                        $media = count($meses) > 0 ? $valorTotal / count($meses) : 0;
                                        return [$valorTotal, $media];
                                    }
                                }

                                // Processar semestres
                                foreach ($semestres as $numeroSemestre => $meses) {
                                    // Calcular valores para o ano menor
                                    list($valorSemestreAnoMenor, $mediaSemestreAnoMenor) = calcularValores($totais, $anoMenor, $meses);

                                    // Calcular valores para o ano maior
                                    list($valorSemestreAnoMaior, $mediaSemestreAnoMaior) = calcularValores($totais, $anoMaior, $meses);

                                    // Calcular comparativo entre semestres
                                    $comparativoSemestre = 0;
                                    if ($valorSemestreAnoMaior != null) {
                                        $comparativoSemestre = $valorSemestreAnoMenor > 0
                                            ? (($valorSemestreAnoMaior - $valorSemestreAnoMenor) / $valorSemestreAnoMenor) * 100
                                            : 0;
                                    }

                                    // Determinar estilos para o comparativo
                                    if ($comparativoSemestre > 0) {
                                        $color = "green";
                                        $backgroundColor = "#d4edda";
                                        $formattedValue = "+" . number_format($comparativoSemestre, 2, ',', '.') . "%";
                                    } elseif ($comparativoSemestre < 0) {
                                        $color = "red";
                                        $backgroundColor = "#f8d7da";
                                        $formattedValue = number_format($comparativoSemestre, 2, ',', '.') . "%";
                                    } else {
                                        $color = "black";
                                        $backgroundColor = "#f8f9fa";
                                        $formattedValue = "0%";
                                    }
                                ?>
                                    <tr>
                                        <td style="text-align: center;"><?= $numeroSemestre ?>° Semestre</td>
                                        <td style="text-align: center;">R$ <?= number_format($valorSemestreAnoMenor, 2, ',', '.'); ?></td>
                                        <td style="text-align: center;">R$ <?= number_format($mediaSemestreAnoMenor, 2, ',', '.'); ?></td>
                                        <td style="text-align: center;">R$ <?= number_format($valorSemestreAnoMaior, 2, ',', '.'); ?></td>
                                        <td style="text-align: center;">R$ <?= number_format($mediaSemestreAnoMaior, 2, ',', '.'); ?></td>
                                        <td style="border-radius: 5px; padding: 5px; text-align: center;">
                                            <span style="color: <?= $color ?>; background-color: <?= $backgroundColor ?>; padding: 3px 8px; border-radius: 5px;">
                                                <?= $formattedValue ?>
                                            </span>
                                        </td>
                                    </tr>
                                <?php
                                }
                                ?>
                            </tbody>
                        </table>

                        <br>
                        <h3 style="text-align: center;">Comparativo Semestre Anterior</h3>
                        <br>

                        <table class="table table-striped table-bordered dt-responsive nowrap" style="width: 100%; table-layout: fixed;">
                            <thead style="position: sticky; top: 0; background-color: #f8f9fa; z-index: 1;">
                                <tr>
                                    <th style="text-align: center;">Semestres Comparados</th>
                                    <th style="text-align: center;">Valor Total Semestre Anterior</th>
                                    <th style="text-align: center;">Valor Total Semestre Atual</th>
                                    <th style="text-align: center;">Comparativo (%)</th>
                                </tr>
                            </thead>
                            <tbody>
                                <?php
                                // Definição dos meses que compõem cada semestre
                                $semestres = [
                                    1 => ['janeiro', 'fevereiro', 'março', 'abril', 'maio', 'junho'],
                                    2 => ['julho', 'agosto', 'setembro', 'outubro', 'novembro', 'dezembro'],
                                ];

                                // Processar os semestres e calcular os valores
                                for ($numeroSemestre = 1; $numeroSemestre <= 2; $numeroSemestre++) {
                                    // Valores para o semestre atual
                                    $valorSemestreAtual = 0;
                                    foreach ($semestres[$numeroSemestre] as $mes) {
                                        $valorSemestreAtual += $totais[$anoMaior]["VALOR_RECEBIDO_" . strtoupper(retiraAcento(ucfirst($mes)))] ?? null;
                                    }

                                    // Definir o semestre e o ano anterior para comparação
                                    if ($numeroSemestre == 1) {
                                        $semestreAnterior = 2;
                                        $anoAnterior = $anoMaior - 1;
                                    } else {
                                        $semestreAnterior = 1;
                                        $anoAnterior = $anoMaior;
                                    }

                                    // Valores para o semestre anterior
                                    $valorSemestreAnterior = 0;
                                    foreach ($semestres[$semestreAnterior] as $mes) {
                                        $valorSemestreAnterior += $totais[$anoAnterior]["VALOR_RECEBIDO_" . strtoupper(retiraAcento(ucfirst($mes)))] ?? 0;
                                    }

                                    // Cálculo do comparativo percentual
                                    $comparativoSemestre = 0;
                                    if ($valorSemestreAtual != null) {
                                        if ($valorSemestreAnterior > 0) {
                                            $comparativoSemestre = (($valorSemestreAtual - $valorSemestreAnterior) / $valorSemestreAnterior) * 100;
                                        }
                                    }

                                    // Definir estilo para o comparativo
                                    if ($comparativoSemestre > 0) {
                                        $color = "green";
                                        $backgroundColor = "#d4edda";
                                        $formattedValue = "+" . number_format($comparativoSemestre, 2, ',', '.') . "%";
                                    } elseif ($comparativoSemestre < 0) {
                                        $color = "red";
                                        $backgroundColor = "#f8d7da";
                                        $formattedValue = number_format($comparativoSemestre, 2, ',', '.') . "%";
                                    } else {
                                        $color = "black";
                                        $backgroundColor = "#f8f9fa";
                                        $formattedValue = "0%";
                                    }
                                ?>
                                    <tr>
                                        <td style="text-align: center;">
                                            <?= $semestreAnterior == 1 ? '1º Semestre' : '2º Semestre' ?> <?= $anoAnterior ?> /
                                            <?= $numeroSemestre == 1 ? '1º Semestre' : '2º Semestre' ?> <?= $anoMaior ?>
                                        </td>
                                        <td style="text-align: center;">R$ <?= number_format($valorSemestreAnterior, 2, ',', '.'); ?></td>
                                        <td style="text-align: center;">R$ <?= number_format($valorSemestreAtual, 2, ',', '.'); ?></td>
                                        <td style="border-radius: 5px; padding: 3px; text-align: center;">
                                            <span style="color: <?= $color ?>; background-color: <?= $backgroundColor ?>; padding: 2px 6px; border-radius: 5px;">
                                                <?= $formattedValue ?>
                                            </span>
                                        </td>
                                    </tr>
                                <?php
                                }
                                ?>
                            </tbody>
                        </table>


                    </div>
                </div>
            </div>
            <div class="card">
                <div class="card-header" id="headingFour">
                    <h5 class="mb-0">
                        <button class="btn btn-link collapsed" data-toggle="collapse" data-target="#collapseFour" aria-expanded="false" aria-controls="collapseFour">
                            <span style="color: #000;">+ Crescimento Anual</span>
                        </button>
                    </h5>
                </div>
                <div id="collapseFour" class="collapse" aria-labelledby="headingFour" data-parent="#accordion">
                    <div class="card-body">

                        <?php
                        $totaisAnos = array_slice(array_map('intval', (array)$_GET['ano']), 0, 2);
                        sort($totaisAnos);
                        $anoMenor = $totaisAnos[0];
                        $anoMaior = $totaisAnos[1];
                        ?>

                        <h3 style="text-align: center;">Comparativo Anual</h3>

                        <table class="table table-striped table-bordered dt-responsive nowrap" style="width: 100%; table-layout: fixed;">
                            <thead>
                                <tr>
                                    <th style="text-align: center;">Valor Total <?= $anoMenor ?></th>
                                    <th style="text-align: center;">Valor Média <?= $anoMenor ?></th>
                                    <th style="text-align: center;">Valor Total <?= $anoMaior ?></th>
                                    <th style="text-align: center;">Valor Média <?= $anoMaior ?></th>
                                    <th style="text-align: center;">Comparativo Anual (<?= $anoMenor ?> X <?= $anoMaior ?>) (%)</th>
                                </tr>
                            </thead>
                            <tbody>
                                <?php
                                // Inicializar as variáveis dos valores totais
                                $valorAnoMenor = 0;
                                $valorAnoMaior = 0;

                                // Array dos meses para iteração
                                $meses = ['Janeiro', 'Fevereiro', 'Março', 'Abril', 'Maio', 'Junho', 'Julho', 'Agosto', 'Setembro', 'Outubro', 'Novembro', 'Dezembro'];

                                // Somar os valores do ano menor
                                foreach ($meses as $mes) {
                                    $mesNormalizado = strtoupper(retiraAcento($mes));
                                    if (isset($totais[$anoMenor]["VALOR_RECEBIDO_" . $mesNormalizado])) {
                                        $valorAnoMenor += $totais[$anoMenor]["VALOR_RECEBIDO_" . $mesNormalizado];
                                    }
                                }

                                // Calcular a média do ano menor (sempre 12 meses)
                                $mediaAnualAnoMenor = $valorAnoMenor / 12;

                                // Determinar até qual mês devemos considerar para o ano maior
                                $mesAtual = (int)date('n');
                                $anoAtual = (int)date('Y');

                                if ($anoMaior < $anoAtual) {
                                    // Ano totalmente encerrado: considerar os 12 meses
                                    $ultimoMesEncerrado = 12;
                                } elseif ($anoMaior === $anoAtual) {
                                    // Ano vigente: usar apenas meses já encerrados
                                    $ultimoMesEncerrado = max($mesAtual - 1, 0);
                                } else {
                                    // Ano futuro: ainda não há meses encerrados
                                    $ultimoMesEncerrado = 0;
                                }

                                // Somar os valores do ano maior apenas até o último mês encerrado
                                $valorAnoMaiorAteEncerrado = 0;
                                for ($i = 0; $i < $ultimoMesEncerrado; $i++) {
                                    $mesNormalizado = strtoupper(retiraAcento($meses[$i]));
                                    if (isset($totais[$anoMaior]["VALOR_RECEBIDO_" . $mesNormalizado])) {
                                        $valorAnoMaiorAteEncerrado += $totais[$anoMaior]["VALOR_RECEBIDO_" . $mesNormalizado];
                                    }
                                }

                                // Calcular a média considerando só meses encerrados
                                if ($ultimoMesEncerrado > 0) {
                                    $mediaAnoMaior = $valorAnoMaiorAteEncerrado / $ultimoMesEncerrado;
                                    // Projeção anual baseada na média dos meses encerrados
                                    $projecaoAnoMaior = $mediaAnoMaior * 12;
                                } else {
                                    $mediaAnoMaior = 0;
                                    $projecaoAnoMaior = 0;
                                }

                                // Calcular o comparativo anual com base na projeção
                                $comparativoAnual = 0;
                                if ($valorAnoMenor > 0) {
                                    $comparativoAnual = (($projecaoAnoMaior - $valorAnoMenor) / $valorAnoMenor) * 100;
                                }

                                // Definir cores e formato do comparativo
                                if ($comparativoAnual > 0) {
                                    $color = "green";
                                    $backgroundColor = "#d4edda";
                                    $formattedValue = "+" . number_format($comparativoAnual, 2, ',', '.') . "%";
                                } elseif ($comparativoAnual < 0) {
                                    $color = "red";
                                    $backgroundColor = "#f8d7da";
                                    $formattedValue = number_format($comparativoAnual, 2, ',', '.') . "%";
                                } else {
                                    $color = "black";
                                    $backgroundColor = "#f8f9fa";
                                    $formattedValue = "0%";
                                }
                                ?>
                                <tr>
                                    <td style="text-align: center;">R$ <?= number_format($valorAnoMenor, 2, ',', '.'); ?></td>
                                    <td style="text-align: center;">R$ <?= number_format($mediaAnualAnoMenor, 2, ',', '.'); ?></td>
                                    <td style="text-align: center;">R$ <?= number_format($projecaoAnoMaior, 2, ',', '.'); ?></td>
                                    <td style="text-align: center;">R$ <?= number_format($mediaAnoMaior, 2, ',', '.'); ?></td>
                                    <td style="text-align: center;">
                                        <span style="color: <?= $color ?>; background-color: <?= $backgroundColor ?>; padding: 3px 8px; border-radius: 5px;">
                                            <?= $formattedValue ?>
                                        </span>
                                    </td>
                                </tr>
                            </tbody>
                        </table>
                    </div>
                </div>
            </div>
        </div>


    </div>

</div>