<?php
require '../conexao/conexao.php';
//require '../sessao.php';
require '../conexao/acesso.php';
require '../configuacoes.php';
require '../configuracao/consulta_banco_dados.php';
require '../configuracao/filtros.php';
require '../lead_time/consulta_tempo_processo.php';
require '../logs/gera-log.php';

gerarLog(
    1, // tipo de log (acesso)
    $basePath, // módulo
    $_SESSION['CodUsuario'],
    $_SESSION['NomeUsuario']
);

// Instancia a classe de consulta_bb ao banco de dados
$consulta_bb = new ConsultaBancoDeDados();
$filtros = new Filtros();


function getBadgeClass($percentage)
{
    if ($percentage <= 89) {
        return 'badge-danger';
    } elseif ($percentage >= 70 && $percentage <= 100) {
        return 'badge-warning';
    } elseif ($percentage > 90) {
        return 'badge-primary';
    } else {
        return 'badge-success';
    }
}

$hoje = new DateTime();
$hojeFormatado = date('Y-m-01');

if (isset($_GET['data'])) {
    $hojeFormatado = $_GET['data'] ?? date('Y-m-01');
}

$data_ate = $_GET['data_ate'] ?? '';

// pega a data de ontem
$dataOntem = date('Y-m-d', strtotime('-1 day', strtotime($hojeFormatado)));

// Obtém o mês e ano da data atual
$mesAtual = date('m', strtotime($hojeFormatado));
$anoAtual = date('Y', strtotime($hojeFormatado));

if ($hoje !== false) {
    //$hoje->setTime(0, 0, 0);
    // Continue com seu código
} else {
    echo "Formato de data inválido.";
    // Tratar o erro conforme necessário
}

require '../querys/query-filiais.php';
$filiais = new Filiais($connectionmysql);

$cidades = $consulta_bb->get_cidades(); // Obtém todas as cidades


$etapas = $consulta_bb->get_etapaFirebird();

$encontroualgumregistro = false;
$cidade = $_GET['cidade'] ?? null;
$ano = $_GET['ano'] ?? null;
$mes = $_GET['mes'] ?? null;

$filial = $_GET['filial'] ?? null;

$etapa = $_GET['etapa'] ?? null;
$funcionario = $_GET['manipulador'] ?? null;
$cod_receita = $_GET['cod_receita'] ?? null;

if (!isset($_GET['data_ate'])) {
    $data_ate = date('Y-m-30');
} else {
    $data_ate = $_GET['data_ate'] ?? '';
}

if (isset($_GET['pesquisar'])) {

    gerarLog(
        5, // tipo de log (acesso)
        $basePath, // módulo
        $_SESSION['CodUsuario'],
        $_SESSION['NomeUsuario']
    );

    $query = "
    SELECT
        PROCESSO,
        CODIGO_PROCESSO,
        TEMPO as TEMPO_SEGUNDOS,
        QTD_FORMULAS as TOTAL_RECEITAS,
        DATA_ALTERACAO,
        ULTIMA_RECEITA
    FROM tempo_lead_time 
    WHERE 1=1";



    // Filtro de etapa
    if (!empty($_GET['etapa']) and $_GET['etapa'] <> 'Todos') {
        $codigo_etapa = addslashes($_GET['etapa']);
        $query .= " AND CODIGO_PROCESSO = '$codigo_etapa'";
    }

    $query .= " ORDER BY PROCESSO";

    $result = $connectionmysql->query($query);

    if (!$result) {
        die('Erro na consulta: ' . $connectionmysql->error);
    }

    $consulta_processo_final = "
    SELECT
     PM.CODIGO_PROCESSO_TIPO  AS COD,
        PM.CODIGO_PROCESSO_TIPO || ' - ' || FFP.NOMETIPO AS processo,
        COUNT(DISTINCT A1.AVIADA_LJ || '-' || A1.CODIGO || '/' || A2.NUMEROFORMULA) AS total_formulas_processo_final
    FROM PROCESSO_MANIPULACAO PM
    INNER JOIN ATENDIMENTO_A1 A1 ON PM.CODIGO_MOV = A1.CODIGO AND PM.TIPO_MOV = 1
    INNER JOIN ATENDIMENTO_A2 A2 ON PM.CODIGO_MOV = A2.CODIGO_ATEND_A1 AND PM.NUMEROFORMULA_MOV = A2.NUMEROFORMULA
    INNER JOIN CLIENTE CL ON A1.CODIGO_CLIENTE = CL.CODIGO
    INNER JOIN FUNCIONARIO FU ON PM.CODIGO_FUNCIONARIO = FU.CODIGO
    INNER JOIN FORMAFARMACEUTICA_PROCESSO_TIPO FFP ON PM.CODIGO_PROCESSO_TIPO = FFP.CODIGO
    LEFT JOIN ATENDIMENTO_ED ED ON A1.CODIGO_ATEND_E = ED.CODIGO
    LEFT JOIN ENTREGADOMICILIO_PERIODO EP ON ED.CODIGO_ENTREGADOMICILIO_PERIODO = EP.CODIGO
    INNER JOIN FORMAFARMACEUTICA FF ON A2.CODIGO_FORMAFARMACEUTICA = FF.CODIGO
    WHERE PM.CODIGO_FUNCIONARIO IS NOT NULL
      AND A1.STATUS_MOV <> 0";

    // Filtro de data
    if (!empty($_GET['data']) && !empty($_GET['data_ate'])) {
        $data_inicio = isset($_GET['data']) ? addslashes($_GET['data']) : date('Y-m-01');
        $data_fim = isset($_GET['data_ate']) ? addslashes($_GET['data_ate']) : date('Y-m-t');
        $consulta_processo_final .= " AND PM.DATA_PROCESSO BETWEEN '" . $data_inicio . "' AND '" . $data_fim . "'";
    }


    $consulta_processo_final .= "
    GROUP BY
        PM.CODIGO_PROCESSO_TIPO || ' - ' || FFP.NOMETIPO,PM.CODIGO_PROCESSO_TIPO
    ORDER BY
        processo;
";

    //echo $consulta_processo_final;exit;

    $result_processo_final = ibase_query($connection, $consulta_processo_final);

    if (!$result_processo_final) {
        die('Erro na consulta: ' . ibase_errmsg());
    }

    $consultaTempo = new ConsultaTempoProcessos($connection, $connectionmysql);

    try {
        $resultado = $consultaTempo->calcularTempoTotalEtapas($data_inicio, $data_fim);

        // Exibir os resultados
        //print_r($resultado);
    } catch (Exception $e) {
        //echo "Erro: " . $e->getMessage();
    }
}

?>

<!DOCTYPE html>
<html lang="pt-br">



<?php
$pageTitle = "PCP - Lead Time"; // Definir o título da página aqui
include('../geral/header.php');
?>
<!-- <script src="https://code.jquery.com/jquery-3.5.1.slim.min.js"></script>
<script src="https://cdn.jsdelivr.net/npm/@popperjs/core@2.5.3/dist/umd/popper.min.js"></script>
<script src="https://stackpath.bootstrapcdn.com/bootstrap/4.5.2/js/bootstrap.min.js"></script> -->

<!-- CSS -->
<style>
    /* Ajustes gerais da tabela */
    table.dataTable {
        border-collapse: collapse;
        width: 100%;
        margin: 20px 0;
        font-size: 14px;
        text-align: left;
    }

    table.dataTable thead th {
        background-color: #f8f9fa;
        /* Cabeçalho com cor leve */
        color: #495057;
        font-weight: bold;
        text-transform: uppercase;
        border-bottom: 2px solid #dee2e6;
    }

    table.dataTable tbody tr:nth-child(odd) {
        background-color: #f9f9f9;
        /* Listras para linhas ímpares */
    }

    table.dataTable tbody tr:nth-child(even) {
        background-color: #ffffff;
        /* Linhas pares em branco */
    }

    table.dataTable tbody tr:hover {
        background-color: #e9ecef;
        /* Cor ao passar o mouse */
    }

    table.dataTable tbody td {
        padding: 8px;
    }

    /* Ajustes para os botões de paginação */
    .dataTables_wrapper .dataTables_paginate {
        display: flex;
        justify-content: center;
        align-items: center;
        gap: 5px;
        margin-top: 10px;
    }

    .dataTables_wrapper .dataTables_paginate .paginate_button {
        padding: 6px 12px;
        border: 1px solid #dee2e6;
        background-color: #f8f9fa;
        color: #495057;
        text-decoration: none;
        border-radius: 4px;
        font-size: 12px;
        cursor: pointer;
        transition: background-color 0.3s, color 0.3s;
    }

    .dataTables_wrapper .dataTables_paginate .paginate_button:hover {
        background-color: #007bff;
        color: #ffffff;
    }

    /* Botão ativo */
    .dataTables_wrapper .dataTables_paginate .paginate_button.current {
        background-color: #007bff;
        color: #ffffff;
        border-color: #007bff;
    }

    /* Botões juntos e bem organizados */
    .dataTables_wrapper .dataTables_paginate .paginate_button {
        margin: 0;
    }

    /* Desabilita hover desnecessário */
    .dataTables_wrapper .dataTables_paginate .paginate_button.disabled {
        background-color: #e9ecef;
        color: #6c757d;
        cursor: not-allowed;
    }

    /* Caixa de pesquisa */
    .dataTables_wrapper .dataTables_filter {
        text-align: right;
        margin-bottom: 10px;
    }

    /* Seleção de quantidade por página */
    .dataTables_wrapper .dataTables_length select {
        border: 1px solid #ced4da;
        border-radius: 4px;
        padding: 4px;
        font-size: 14px;
    }

    /* Ajustes gerais para os botões de paginação */
    .dataTables_wrapper .dataTables_paginate .paginate_button {
        padding: 6px 12px;
        border: 1px solid #dee2e6;
        background-color: #f8f9fa;
        color: #495057;
        text-decoration: none;
        border-radius: 4px;
        font-size: 12px;
        cursor: pointer;
    }

    /* Botão ativo (atualmente selecionado) */
    .dataTables_wrapper .dataTables_paginate .paginate_button.current {
        background-color: #007bff;
        color: #ffffff;
        border-color: #007bff;
    }

    /* Desabilitar hover (nenhuma alteração ao passar o mouse) */
    .dataTables_wrapper .dataTables_paginate .paginate_button:hover {
        background-color: #f8f9fa;
        color: #495057;
        border: 1px solid #dee2e6;
    }

    /* Botão desativado (estilo fixo) */
    .dataTables_wrapper .dataTables_paginate .paginate_button.disabled {
        background-color: #e9ecef;
        color: #6c757d;
        cursor: not-allowed;
    }
</style>

<body>

    <!-- Navigation Bar-->
    <?php
    include('../geral/menu.php');
    ?>
    <!-- End Navigation Bar-->

    <!-- ============================================================== -->
    <!-- Start Page Content here -->
    <!-- ============================================================== -->

    <div class="wrapper candidato">
        <div class="container-fluid">

            <div class="card-box mt-3">
                <div class="row align-items-center">

                    <div class="col-12">
                        <form method="get" action="index.php" id="indexForm" onsubmit="return validarFormulario();">
                            <h3>Painel Lead Time</h3>
                    </div>

                    <?php
                    // Exibe o filtro de etapa
                    echo $filtros->filtroEtapa($etapa, $etapas);

                    ?>
                    <div class="form-group col-6 col-md-4 col-lg-2">
                        <label for="cliente" class="col-form-label">Data inicial:</label>
                        <input type="date" class="form-control" id="data_inicial" name="data" placeholder="Cliente" value="<?php echo $hojeFormatado; ?>">

                    </div>

                    <div class="form-group col-6 col-md-4 col-lg-2">
                        <label for="cliente" class="col-form-label">Data final:</label>
                        <input type="date" class="form-control" id="data_final" require="require" name="data_ate" value="<?php echo $data_ate ?? ''; ?>">

                    </div>

                    <div class="col-6 col-md-12 col-lg-6 d-flex mt-3" style="align-items:center;justify-content: end;">
                        <div>
                            <a href="index.php" class="btn btn-warning mr-2"><i class="mdi mdi-plus"></i> Limpar</a>
                        </div>
                        <div>
                            <button name="pesquisar" class="btn btn-primary" type="submit">Pesquisar</button>
                        </div>
                    </div>


                    </form>
                </div>
            </div>
            <?php if (isset($_GET['pesquisar'])) { ?>
                <div class="card-box mt-1">
                    <div class="row align-items-center">
                        <div class="col-12 text-center">
                            <div class="col-12 text-center">
                                <h6>Resultado</h6>
                            </div>
                            <div class="tab-content">
                                <div class="tab-pane show active" id="geral">
                                    <div class="d-flex mb-3" style="justify-content: space-between;">
                                        <div>
                                            <ul class="nav nav-tabs">
                                                <li class="nav-item">
                                                    <a href="#geral" data-bs-toggle="tab" aria-expanded="true" class="nav-link active" style="font-size: larger;">
                                                        Visão Geral
                                                    </a>
                                                </li>
                                            </ul>
                                        </div>
                                        <div class="col-md-3 text-right">
                                            <button type="button" class="btn btn-primary" onclick="window.location.href='calculo-formula.php?etapa=<?= isset($_GET['etapa']) ? $_GET['etapa'] : 'Todos' ?>&data=<?= isset($_GET['data']) ? $_GET['data'] : '' ?>&data_ate=<?= isset($_GET['data_ate']) ? $_GET['data_ate'] : '' ?>&atualizar=1'">
                                                <i class="mdi mdi-refresh"></i> Atualizar Dados
                                            </button>
                                        </div>

                                        <!-- <div class="col-6 col-md-4 col-lg-2">
                                                    <button type="button" class="btn btn-success" onclick="exportarParaExcel()">
                                                        <i class="mdi mdi-file-excel"></i> Exportar para Excel
                                                    </button>
                                                </div> -->
                                    </div>
                                    <table id="minhaTabela1" class="table table-striped table-bordered dt-responsive nowrap" style="width: 100%;">
                                        <thead class="thead-light">
                                            <tr>
                                                <th scope="col" style="text-align: center;">Processo</th>
                                                <th scope="col" style="text-align: center;">Tempo Gasto (Horas)</th>
                                                <th scope="col" style="text-align: center;">Quantidade de Formulas</th>
                                                <th scope="col" style="text-align: center;">Média de Tempo Gasto (Horas)</th>
                                            </tr>
                                        </thead>
                                        <tbody>
                                            <?php
                                            $hasResults = false;
                                            $totalFormulas = 0;
                                            $totalTempoSegundos = 0; // Variável para acumular o total de segundos
                                            $tempo_total_segundos_processos = 0;
                                            $total_receitas_processos = 0; // Variável para acumular o total de segundos
                                            $total_tempo_formatado = 0;

                                            // Array para armazenar os resultados
                                            $consulta_processos_final = [];

                                            // Iterar pelos resultados da consulta
                                            while ($row = ibase_fetch_assoc($result_processo_final)) {
                                                $consulta_processos_final[$row['COD']] = $row;
                                            }
                                            //print_r($consulta_processos_final['1']);



                                            while ($row = $result->fetch_assoc()) {
                                                $total_receitas_processos += $consulta_processos_final[$row['CODIGO_PROCESSO']]['TOTAL_FORMULAS_PROCESSO_FINAL'] ?? 0;
                                                $encontroualgumregistro = true;
                                                $hasResults = true;
                                                $nomeetapa = htmlspecialchars($row['PROCESSO']);
                                                $idEtapa = substr($row['PROCESSO'], 0, 2);
                                                //var_dump($nomeetapa);
                                                // Soma o tempo total em segundos
                                                $tempo_total_segundos = isset($row['TEMPO_SEGUNDOS']) ? (int)$row['TEMPO_SEGUNDOS'] : 0;
                                                $totalTempoSegundos += $tempo_total_segundos;


                                            ?>
                                                <tr>
                                                    <td><a href="detalhes_vendedor.php?etapa=<?php echo $idEtapa; ?>&data=<?= $_GET['data'] ?>&data_ate=<?= $_GET['data_ate'] ?>&pesquisar="><?= htmlspecialchars($nomeetapa) ?></a></td>
                                                    <td style="text-align: center;">
                                                        <?php
                                                        if ($tempo_total_segundos > 0) {
                                                            $horas = floor($tempo_total_segundos / 3600);
                                                            $minutos = floor(($tempo_total_segundos % 3600) / 60);
                                                            $segundos = $tempo_total_segundos % 60;

                                                            $tempo_formatado = sprintf('%02d:%02d:%02d', $horas, $minutos, $segundos);
                                                        } else {
                                                            $tempo_formatado = '00:00:00';
                                                        }

                                                        echo $tempo_formatado;
                                                        ?>
                                                    </td>
                                                    <?php
                                                    // Busca o total de fórmulas do processo atual

                                                    $total_formulas_do_processo = $consulta_processos_final[$row['CODIGO_PROCESSO']]['TOTAL_FORMULAS_PROCESSO_FINAL'] ?? 0;

                                                    ?>
                                                    <td style="text-align: center;" data-order="<?= htmlspecialchars($total_formulas_do_processo) ?>"><?= number_format($total_formulas_do_processo, 0, ',', '.'); ?></td>
                                                    <td style="text-align: center;">
                                                        <?php
                                                        $total_receitas = $row['TOTAL_RECEITAS'];

                                                        if ($total_receitas > 0) {
                                                            $media_tempo_segundos = floor($tempo_total_segundos / $total_receitas);

                                                            $horas = floor($media_tempo_segundos / 3600);
                                                            $minutos = floor(($media_tempo_segundos % 3600) / 60);
                                                            $segundos = $media_tempo_segundos % 60;

                                                            $media_tempo_formatado = sprintf('%02d:%02d:%02d', $horas, $minutos, $segundos);
                                                        } else {
                                                            $media_tempo_formatado = '00:00:00';
                                                        }

                                                        //echo $media_tempo_formatado;
                                                        echo $media_tempo_formatado;
                                                        ?>
                                                    </td>
                                                </tr>
                                            <?php
                                            }

                                            // Adiciona uma linha para o totalizador
                                            if ($hasResults) {
                                                $tempo_total_horas = floor($totalTempoSegundos / 3600);
                                                $tempo_total_minutos = floor(($totalTempoSegundos % 3600) / 60);
                                                $tempo_total_segundos = $totalTempoSegundos % 60;
                                                $total_tempo_formatado = sprintf('%02d:%02d:%02d', $tempo_total_horas, $tempo_total_minutos, $tempo_total_segundos);


                                            ?>

                                            <?php
                                            } else {
                                                echo "<tr><td colspan='3'>Nenhum registro encontrado para anteriores a hoje.</td></tr>";
                                            }
                                            ?>
                                        </tbody>
                                        <tfoot>
                                            <tr style="font-weight: bold; background-color: #f2f2f2;">
                                                <td style="text-align: center;">Total </td>
                                                <td style="text-align: center;"><?= $total_tempo_formatado ?></td>
                                                <td style="text-align: center;"><?= number_format($total_receitas_processos, 0, ',', '.'); ?></td>
                                                <td style="text-align: center;">
                                                    <?php

                                                    if ($total_receitas_processos > 0) {
                                                        $media_tempo_segundos = floor($totalTempoSegundos / $total_receitas_processos);
                                                        $horas = floor($media_tempo_segundos / 3600);
                                                        $minutos = floor(($media_tempo_segundos % 3600) / 60);
                                                        $segundos = $media_tempo_segundos % 60;
                                                        $media_tempo_formatado = sprintf('%02d:%02d:%02d', $horas, $minutos, $segundos);
                                                    } else {
                                                        $media_tempo_formatado = '00:00:00';
                                                    }

                                                    echo $media_tempo_formatado;
                                                    ?>

                                                </td>
                                            </tr>
                                        </tfoot>
                                    </table>
                                </div>
                            </div>
                        </div>
                    </div>
                </div>
            <?php
                // Verifica se não encontrou registros
                if ($encontroualgumregistro === false) {
                    echo '<script>alert("Sem resultado para consulta");</script>';
                }
            } ?>
            <!-- ============================================================== -->
            <!-- End Page content -->
            <!-- ============================================================== -->
        </div>
    </div>
    <?php
    include('../geral/footer.php');
    ?>
    <!-- end Footer -->

    <?php
    include('../geral/mensagens_modais.php');
    ?>

    <!-- Vendor js -->
    <script src="../../assets/js/vendor.min.js"></script>

    <!-- knob plugin -->
    <script src="../../assets/libs/jquery-knob/jquery.knob.min.js"></script>
    <!-- App js-->
    <script src="../../assets/js/app.min.js"></script>

    <script src="../geral/javascript.js"></script>
    <script src="../../assets/js/funcoes.js"></script>


    <script src="https://code.jquery.com/jquery-3.6.0.min.js"></script>
    <script src="https://cdn.datatables.net/1.11.3/js/jquery.dataTables.min.js"></script>
    <script src="https://cdn.datatables.net/1.11.3/js/dataTables.bootstrap5.min.js"></script>
    <link rel="stylesheet" href="https://cdn.datatables.net/1.11.3/css/dataTables.bootstrap5.min.css">

    <script src="https://cdn.datatables.net/buttons/2.0.1/js/dataTables.buttons.min.js"></script>
    <script src="https://cdnjs.cloudflare.com/ajax/libs/jszip/3.1.3/jszip.min.js"></script>
    <script src="https://cdnjs.cloudflare.com/ajax/libs/pdfmake/0.1.66/pdfmake.min.js"></script>
    <script src="https://cdnjs.cloudflare.com/ajax/libs/pdfmake/0.1.66/vfs_fonts.js"></script>
    <script src="https://cdn.datatables.net/buttons/2.0.1/js/buttons.html5.min.js"></script>

    <link rel="stylesheet" href="https://cdn.datatables.net/buttons/2.0.1/css/buttons.dataTables.min.css">

    <link rel="stylesheet" href="../../assets/css/resetedatatable.css">

    <!-- Standard modal content -->
    <!-- Modal -->
    <div id="standard-modal" class="modal fade" tabindex="-1" role="dialog" aria-labelledby="standard-modalLabel" aria-hidden="true">
        <div class="modal-dialog modal-lg">
            <div class="modal-content">
                <div class="modal-header">
                    <h4 class="modal-title" id="standard-modalLabel">Apuração Diária</h4>
                    <button type="button" class="btn-close" data-bs-dismiss="modal" aria-label="Close"></button>
                </div>
                <div class="modal-body">
                    <!-- Aqui incluímos a página buscar_detalhes_requisicao.php na modal -->
                    <div id="detalhes-requisicao-container">
                        <!-- O conteúdo da página buscar_detalhes_requisicao.php será carregado aqui -->
                    </div>
                </div>
                <div class="modal-footer">
                    <button type="button" class="btn btn-light" data-bs-dismiss="modal">Fechar</button>
                </div>
            </div><!-- /.modal-content -->
        </div><!-- /.modal-dialog -->
    </div><!-- /.modal -->

    <script>
        $(document).ready(function() {
            var order = [
                [0, "asc"]
            ];

            $('#minhaTabela1').DataTable({
                "language": {
                    "url": "https://cdn.datatables.net/plug-ins/1.10.21/i18n/Portuguese-Brasil.json"
                },
                "order": order,
                "ordering": true,
                //"pageLength": -1, // Exibe todos os registros
                "lengthMenu": [
                    [10, 25, 50, 100, -1],
                    [10, 25, 50, 100, "Todos"]
                ],
                "buttons": [
                    // 'copyHtml5',
                    'excelHtml5',
                    'csvHtml5',
                    // 'pdfHtml5'
                ],
                //"dom": 'Bfrtip',
                dom: '<"d-flex justify-content-between align-items-center mb-2"Bf>t<"datatable-footer d-flex justify-content-between align-items-center mt-2 w-100"<"footer-left"l><"footer-center"i><"footer-right"p>>', // Adicionando "l" para incluir a opção de seleção de quantidade de registros por página

            });
        });
    </script>

    <script>
        function exportTableToExcel(tableId, fileName = '') {
            var table = document.getElementById(tableId);
            if (!table) {
                console.error('Tabela não encontrada');
                return;
            }

            if (!fileName) {
                fileName = 'exportacao_' + new Date().toISOString().slice(0, 10);
            }

            var csvContent = [];

            // Cabeçalhos
            var headers = [];
            var headerCells = table.querySelectorAll('thead th');
            headerCells.forEach(function(cell) {
                headers.push(cell.textContent.trim());
            });
            csvContent.push(headers.join(';'));

            // Dados
            var rows = table.querySelectorAll('tbody tr');
            rows.forEach(function(row) {
                var rowData = [];
                row.querySelectorAll('td').forEach(function(cell) {
                    var cellContent = cell.textContent.trim();
                    cellContent = cellContent.replace(/;/g, ',');
                    rowData.push(cellContent);
                });
                csvContent.push(rowData.join(';'));
            });

            var csvString = csvContent.join('\n');
            var blob = new Blob(['\ufeff' + csvString], {
                type: 'text/csv;charset=utf-8;'
            });

            var link = document.createElement("a");
            var url = URL.createObjectURL(blob);
            link.setAttribute("href", url);
            link.setAttribute("download", fileName + '.csv');
            document.body.appendChild(link);
            link.click();
            document.body.removeChild(link);
        }
    </script>


    <script>
        applyFilter('cidade', 'filial', 'data-cidade', '<?php echo isset($filialselect) ? $filialselect : ''; ?>');

        function showModal(modalId, title, message) {
            const modalElement = document.getElementById(modalId);
            const modal = new bootstrap.Modal(modalElement);
            modalElement.querySelector('.modal-title').textContent = title;
            modalElement.querySelector('.modal-body p').textContent = message;
            modal.show();

            // Adiciona evento de clique para fechar a modal
            setTimeout(() => {
                document.addEventListener('click', closeModalOnOutsideClick);
            }, 0);
        }

        function closeModalOnOutsideClick(event) {
            const modalElement = document.querySelector('.modal.show');
            if (modalElement && !modalElement.contains(event.target)) {
                const modalInstance = bootstrap.Modal.getInstance(modalElement);
                modalInstance.hide();
            }
        }

        function validarCampo(id) {
            const campo = document.getElementById(id);
            const valor = campo.value.trim();
            let campoValido = true;

            // Verifica se o campo é "filial"
            if (id === 'filial') {
                // Separa os valores por vírgula (em caso de múltiplos IDs)
                const valoresArray = valor.split(',');

                // Verifica se o valor contém "0" e mais de um ID
                if (valoresArray.includes('x') && valoresArray.length > 1) {
                    campoValido = false;
                    campo.classList.add('is-invalido');
                } else {
                    campo.classList.remove('is-invalido');
                }
            } else {
                // Validação padrão para outros campos
                if (!valor || valor === 'Selecione' || valor === 'Todos') {
                    campoValido = false;
                    campo.classList.add('is-invalido');
                } else {
                    campo.classList.remove('is-invalido');
                }
            }

            return campoValido;
        }


        function validarFormulario() {
            let camposValidos = true;

            const mesValido = validarCampo('mes');
            const anoValido = validarCampo('ano');
            const filialValida = validarCampo('filial');
            const etapaValida = validarCampo('etapa');
            const cidade = validarCampo('cidade');

            camposValidos = mesValido && anoValido && filialValida && etapaValida && cidade;

            if (!camposValidos) {
                showModal('exampleModal', 'Informação', 'Por favor, selecione todos os campos obrigatórios para a consulta.');
            }

            return camposValidos;
        }

        function verificarErroNaURL() {
            const urlParams = new URLSearchParams(window.location.search);
            const errorMessage = urlParams.get('error');
            if (errorMessage) {
                showModal('exampleModal', 'Erro', errorMessage);
            }
        }

        window.onload = verificarErroNaURL;
    </script>

</body>

</html>