<?php
//require '../sessao.php';
require '../conexao/acesso.php';
require '../configuacoes.php';
require '../configuracao/consulta_banco_dados.php';
require '../configuracao/filtros.php';
require '../configuracao/get_config.php';
require '../conexao/conexao.php';
require '../querys/query-performance-medicos.php';
require 'consulta_bd.php';
require '../logs/gera-log.php';

$resultmeta = null;

// Instancia a classe de consulta_bb ao banco de dados
$Configuracoes = new Configuracoes();

$consulta_bb = new ConsultaBancoDeDados();
$consultapcp = new ConsultasMetasPCP();
$filtros = new Filtros();

$cidades = $consulta_bb->get_cidades();
$filiais = $consulta_bb->get_filiais();
$reprensentantes = $consulta_bb->get_representante();
// $medicos = $consulta_bb->get_medicos();
// $filial_representante = $consulta_bb->get_filial_firebird();

$ids = array_column($filiais, 'ID');
$ids_filial = implode(',', $ids);
$filial = !empty($_GET['filial']) ? $_GET['filial'] : $ids_filial;
$ano = isset($_GET['ano']) ? $_GET['ano'] : date('Y');
$filial = isset($_GET['filial']) ? $_GET['filial'] : null;
$visitador = isset($_GET['visitador']) ? $_GET['visitador'] : null;
$medico = isset($_GET['medico']) ? $_GET['medico'] : null;
$cidade = $_GET['cidade'] ?? null;
$mes = $_GET['mes'] ?? null;

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

$consultaDadosPerformance = new ConsultaDadosPerformance();

$dadosManipulados = [];
$dadosMarcaPropria = [];
$dadosRevenda = [];

if ($_SERVER['REQUEST_METHOD'] === 'POST') {
    $anosSelecionados = isset($_POST['ano']) ? $_POST['ano'] : [];

    if (count($anosSelecionados) < 2) {
        die("Você deve selecionar pelo menos dois anos.");
    }
}

$query_representante = "SELECT MR.codigo_funcionario, RP.nomefuncionario 
                        FROM MEDICO_REPRESENTANTE MR
                        INNER JOIN FUNCIONARIO RP ON MR.CODIGO_FUNCIONARIO = RP.CODIGO
                        WHERE RP.ATIVO = '-1'
                        GROUP BY MR.codigo_funcionario, RP.nomefuncionario";
$result_representante = ibase_query($connection, $query_representante);

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

$representante = [];
while ($row = ibase_fetch_assoc($result_representante)) {
    $representante[] = $row;
}

?>

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


<link href="https://cdn.jsdelivr.net/npm/select2@4.1.0-rc.0/dist/css/select2.min.css" rel="stylesheet" />
<?php
$pageTitle = "Acompanhamento de performance de médicos"; // Definir o título da página aqui
include('../geral/header.php');
?>

<!-- JavaScript do Bootstrap e dependência de jQuery e Popper.js -->
<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>

<body>


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

    <style>
        /* Garante que o select2 tenha largura adequada */
        .select2-container {
            width: 100% !important;
        }

        /* Ajusta o alinhamento do campo select */
        .select2-container--default .select2-selection--multiple {
            height: 38px;
            border: 1px solid #ced4da;
            padding: 5px;
            display: flex;
            align-items: center;
        }

        /* Centraliza o texto no campo de seleção */
        .select2-container--default .select2-selection--multiple .select2-selection__rendered {
            display: flex;
            justify-content: flex-start;
            align-items: center;
            height: 100%;
            white-space: nowrap;
            overflow: hidden;
            text-overflow: ellipsis;
        }

        .select2-container--default .select2-selection--multiple .select2-selection__choice__display {
            cursor: default;
            padding-left: 18px;
            padding-right: 5px;
        }

        .select2-container--open .select2-dropdown--below {
            border-top: none;
            border-top-left-radius: 0;
            border-top-right-radius: 0;
            width: 296px !important;
        }

        /* Adicionar barra de rolagem horizontal */
        #datatable-buttons {
            width: 100%;
            table-layout: auto;
        }

        /* Fixar a primeira coluna */
        #datatable-buttons th:first-child,
        #datatable-buttons td:first-child {
            position: sticky;
            left: 0;
            background-color: #f8f9fa;
            /* Cor de fundo para o destaque da coluna fixa */
            z-index: 1;

        }

        /* Ajustes de estilo para a tabela */
        #datatable-buttons th {
            text-align: center;
            white-space: nowrap;
            /* Impede que o texto quebre em várias linhas */
        }

        #datatable-buttons td {
            text-align: center;

        }

        #datatable-buttons th,
        #datatable-buttons td {
            padding: 10px;
        }

        /* Adicionar barra de rolagem horizontal */
        #datatable-buttons-meses {
            width: 100%;
            table-layout: auto;
        }

        /* Fixar apenas o cabeçalho */
        #datatable-buttons-meses thead th {
            position: sticky;
            top: 0;
            background-color: #f8f9fa;
            /* Cor de fundo para o destaque do cabeçalho fixo */
            z-index: 2;
            /* Garante que o cabeçalho fique acima das células */
        }

        /* Ajustes de estilo para a tabela */
        #datatable-buttons-meses th {
            text-align: center;
            white-space: nowrap;
            /* Impede que o texto quebre em várias linhas */
        }

        #datatable-buttons-meses td {
            text-align: center;
        }

        #datatable-buttons-meses th,
        #datatable-buttons-meses td {
            padding: 10px;
        }

        /* Adicionar barra de rolagem horizontal */
        #datatable-buttons-ano {
            width: 100%;
            table-layout: auto;
        }

        /* Ajustes de estilo para a tabela */
        #datatable-buttons-ano th {
            text-align: center;
            white-space: nowrap;
            /* Impede que o texto quebre em várias linhas */
        }

        #datatable-buttons-ano td {
            text-align: center;

        }

        #datatable-buttons-ano th,
        #datatable-buttons-ano td {
            padding: 10px;
        }

        /* Estilos para Bootstrap Multiselect */
        .multiselect-container.dropdown-menu {
            width: 100% !important;
            max-height: 300px;
            overflow-y: auto;
        }
        
        .multiselect-container li {
            padding: 5px 10px;
        }
        
        .multiselect-container li label {
            display: block;
            cursor: pointer;
            padding: 5px 0;
        }
        
        .multiselect-container li input[type="checkbox"] {
            margin-right: 8px;
        }
        
        .multiselect-filter {
            padding: 10px;
            border-bottom: 1px solid #ddd;
        }
        
        .multiselect-filter input {
            width: 100%;
            padding: 5px;
            border: 1px solid #ccc;
            border-radius: 3px;
        }
    </style>

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

    <div class="wrapper candidato">
        <div class="container-fluid">
            <div class="card-box mt-3">
                <div class="row">

                    <div class="col-6 text-left">
                        <h4 class="page-title"><?= $pageTitle ?></h4>
                    </div>

                    <div class="col-12">
                        <hr>
                    </div>

                    <div class="col-12">
                        <form id="indexForm" method="get" action="" onsubmit="return validarFormulario()">
                            <div class="form-row mb-12">

                                <div class="form-group col-6 col-md-4 col-lg-2">
                                    <label for="ano" class="col-form-label">Gestão</label>
                                    <select id="busca_gestao" name="busca_gestao" required class="form-control">
                                        <option value="">Selecione um</option>
                                        <option value="1" <?php if (isset($busca_gestao) and $busca_gestao == 1) {
                                                                echo 'selected';
                                                            } ?>>Faturamento Total</option>
                                        <option value="2" <?php if (isset($busca_gestao) and $busca_gestao == 2) {
                                                                echo 'selected';
                                                            } ?>>Manipulado</option>
                                        <option value="3" <?php if (isset($busca_gestao) and $busca_gestao == 3) {
                                                                echo 'selected';
                                                            } ?>>Revenda</option>
                                        <option value="4" <?php if (isset($busca_gestao) and $busca_gestao == 4) {
                                                                echo 'selected';
                                                            } ?>>Marca Própria</option>
                                    </select>

                                </div>

                                <?php
                                // Exibe o filtro de cidade
                                echo $filtros->filtroCidade($cidade, $cidades);
                                ?>
                                <?php



                                echo $filtros->filtroCheckBox('filial', $filiais, null);
                                // echo $filtros->filtroFilialSimples($filialselectRepresentante, $filial_representante, true, 'Filial Representante');
                                //echo $filtros->filtroCheckBox('visitador', $reprensentantes);
                                // echo $filtros->filtroCheckBox('medicos', $medicos, null, false, false, 'médicos');

                                ?>


                                <div class="form-group col-6 col-md-4 col-lg-2">
                                    <label for="nomeVisitador" class="col-form-label">Representante</label>
                                    <select name="visitador[]" id="nomeVisitador" class="form-control select2" multiple="multiple">
                                        <?php
                                        $selectedVisitadores = isset($_GET['visitador']) ? (is_array($_GET['visitador']) ? $_GET['visitador'] : [$_GET['visitador']]) : [];
                                        foreach ($representante as $itens) {
                                            $selected = in_array($itens['CODIGO_FUNCIONARIO'], $selectedVisitadores) ? 'selected' : '';
                                        ?>
                                            <option value="<?php echo $itens['CODIGO_FUNCIONARIO']; ?>" <?php echo $selected; ?>>
                                                <?php echo $itens['NOMEFUNCIONARIO'] ?>
                                            </option>
                                        <?php } ?>
                                    </select>
                                </div>

                                <div class="form-group col-6 col-md-4 col-lg-2">
                                    <label for="nomeMedico" class="col-form-label">Médico</label>
                                    <select name="medico[]" id="nomeMedico" class="form-control select2" multiple="multiple">
                                        <?php
                                        // Adicionar a consulta para buscar médicos
                                        $query_medicos = "SELECT  
                                         DISTINCT
                                        (CR.SIGLA || '-' || ME.CR_ESTADO || '-' || ME.CRM) AS ID,
                                        ME.nomemedico as NOME
                                        FROM ATENDIMENTO_A1 A1
                                        INNER JOIN MEDICO ME ON ME.CODIGO = A1.CODIGO_MEDICO
                                        LEFT JOIN MEDICO_CR CR ON ME.CODIGO_CONSELHO_REGIONAL = CR.CODIGO
                                        WHERE CAST(A1.AVIADA_DT AS DATE) BETWEEN DATEADD(-2 YEAR TO CURRENT_DATE) AND CURRENT_DATE
                                        AND A1.STATUS_MOV = -1
                                        AND A1.TIPO_ATENDIMENTO = 1
                                        AND A1.CANCELAMENTO_LJ IS NULL
                                        AND (CR.SIGLA || '-' || ME.CR_ESTADO || '-' || ME.CRM) IS NOT NULL
                                        AND ME.nomemedico IS NOT NULL AND TRIM(ME.nomemedico) <> ''
                                        AND ME.CRM IS NOT NULL AND TRIM(ME.CRM) <> ''
                                        GROUP BY ME.nomemedico, (CR.SIGLA || '-' || ME.CR_ESTADO || '-' || ME.CRM)
                                        ORDER BY ME.nomemedico";
                                        
                                        $result_medicos = ibase_query($connection, $query_medicos);
                                        
                                        if ($result_medicos) {
                                            $selectedMedicos = isset($_GET['medico']) ? (is_array($_GET['medico']) ? $_GET['medico'] : [$_GET['medico']]) : [];
                                            while ($row_medico = ibase_fetch_assoc($result_medicos)) {
                                                $selected = in_array($row_medico['ID'], $selectedMedicos) ? 'selected' : '';
                                                echo "<option value=\"" . $row_medico['ID'] . "\" $selected>" . $row_medico['ID'] . " - " . $row_medico['NOME'] . "</option>";
                                            }
                                        }
                                        ?>
                                    </select>
                                </div>

                                <div class="form-group col-6 col-md-4 col-lg-2">
                                    <label for="ano" class="col-form-label">Ano</label>
                                    <select id="ano" name="ano[]" class="form-control" multiple="multiple" required>
                                        <?php
                                        $anosSelecionados = isset($_GET['ano']) ? $_GET['ano'] : []; // Captura os anos da URL
                                        $anoAtual = date("Y") + 1; // Obtém o ano atual incrementado em 1
                                        $anosDisponiveis = [];

                                        // Gera os anos de forma decrescente a partir de $anoAtual
                                        for ($i = 0; $i < 5; $i++) {
                                            $anosDisponiveis[] = $anoAtual - $i;
                                        }

                                        foreach ($anosDisponiveis as $ano) {
                                            $selected = in_array($ano, $anosSelecionados) ? 'selected' : ''; // Verifica se o ano está selecionado
                                            echo "<option value=\"$ano\" $selected>$ano</option>";
                                        }
                                        ?>
                                    </select>
                                </div>


                                <div class="form-group col-6 col-md-4 col-lg-2 mt-2" style="align-items:center;">
                                    <label for=" ano" class="col-form-label">Gestão por Dias</label>
                                    <input type="checkbox" name="dias" value="S" <?php if (isset($_GET['dias']) and $_GET['dias'] == 'S') {
                                                                                        echo 'checked';
                                                                                    } ?>>
                                </div>

                                <?php
                                // Exibe o filtro de mes
                                //echo $filtros->filtroMes($mes);
                                ?>

                                <input type="hidden" name="form_submitted" value="1" />
                                <div class="col-6 col-md-4 col-lg-12 d-flex mt-2 mt-lg-0" style="align-items:center;justify-content: end;">
                                    <a href="index.php" class="btn btn-warning mr-2"><i class="mdi mdi-plus"></i> Limpar</a>
                                    <button type="submit" id="submit-button" class="btn btn-primary"><i class="mdi mdi-magnify"></i> Pesquisar</button>
                                </div>
                            </div>
                        </form>
                    </div>
                </div>
                <br>
                <br>

                <?php if (isset($_GET['form_submitted']) and $_GET['form_submitted'] == 1 and !isset($_GET['dias'])) {
                    gerarLog(
                        5, // tipo de log (acesso)
                        $basePath, // módulo
                        $_SESSION['CodUsuario'],
                        $_SESSION['NomeUsuario']
                    );

                ?>

                    <?php include('crescimento_mensal.php'); ?>

                <?php } elseif (isset($_GET['form_submitted']) and $_GET['form_submitted'] == 1 and isset($_GET['dias']) and $_GET['dias'] == 'S') {
                    gerarLog(
                        5, // tipo de log (acesso)
                        $basePath, // módulo
                        $_SESSION['CodUsuario'],
                        $_SESSION['NomeUsuario']
                    );

                ?>

                    <?php include('crescimento_dias.php'); ?>


                <?php } ?>
            </div>
        </div>

        <!-- end wrapper -->

        <!-- ============================================================== -->
        <!-- End Page content -->
        <!-- ============================================================== -->

        <!-- Footer Start -->
        <?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>
        <!-- Inclua isso no cabeçalho para garantir que as bibliotecas sejam carregadas -->
        <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.jsdelivr.net/npm/select2@4.1.0-rc.0/dist/js/select2.min.js"></script>

        <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">

        <link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/bootstrap-multiselect/1.1.2/css/bootstrap-multiselect.min.css">
        <script src="https://cdnjs.cloudflare.com/ajax/libs/bootstrap-multiselect/1.1.2/js/bootstrap-multiselect.min.js"></script>

        <link href="https://cdn.jsdelivr.net/npm/select2@4.1.0-rc.0/dist/css/select2.min.css" rel="stylesheet" />
        <link href="https://cdn.jsdelivr.net/npm/select2-bootstrap-5-theme@1.3.0/dist/select2-bootstrap-5-theme.min.css" rel="stylesheet" />
        <script src="https://cdn.jsdelivr.net/npm/select2@4.1.0-rc.0/dist/js/select2.min.js"></script>


        <script>

            initDropdownFilter('filial');

            $(document).ready(function() {
                // Initialize Select2 specifically for each field to avoid conflicts
                $('#nomeVisitador').select2({
                    placeholder: 'Digite para filtrar...',
                    allowClear: true,
                    language: {
                        inputTooShort: function () {
                            return 'Digite para filtrar...';
                        }
                    }
                });

                // Initialize Select2 for doctor field
                $('#nomeMedico').select2({
                    placeholder: 'Digite para filtrar...',
                    allowClear: true,
                    multiple: true,
                    language: {
                        inputTooShort: function () {
                            return 'Digite para filtrar...';
                        },
                        searching: function() {
                            return 'Procurando...';
                        },
                        noResults: function() {
                            return 'Nenhum resultado encontrado';
                        }
                    }
                });

                $(".money").mask("000000", {
                    reverse: true
                });
            });


            $(document).ready(function() {
                // Função para preencher o combo de filiais com Select2
                function carregarFiliais(cidade) {
                    console.log("Cidade selecionada: " + cidade); // Adiciona log para depuração

                    $.ajax({
                        url: 'get_filiais.php', // Verifique se o caminho está correto
                        type: 'POST',
                        dataType: 'json',
                        data: {
                            cidade: cidade
                        },
                        success: function(data) {
                            console.log("Filiais carregadas: ", data); // Adiciona log para depuração

                            $('#filial').empty().select2({
                                placeholder: 'Selecione uma ou mais filiais',
                                data: data.map(function(item) {
                                    return {
                                        id: item.id,
                                        text: item.nome_filial
                                    };
                                })
                            });

                            // Recuperar filiais selecionadas do localStorage, se existirem
                            var filiaisSelecionadas = JSON.parse(localStorage.getItem('filiaisSelecionadas')) || [];

                            // Selecionar as filiais recuperadas
                            $('#filial').val(filiaisSelecionadas).trigger('change');
                        },

                    });
                }

                // Ao carregar a página, chama a função para preencher o combo de filiais com base na cidade inicial
                carregarFiliais($('#cidade').val());

                // Ao alterar a cidade, chama a função para preencher o combo de filiais com base na nova cidade selecionada
                $('#cidade').change(function() {
                    const cidade = $(this).val();
                    carregarFiliais(cidade);
                });

                // Ao selecionar ou deselecionar uma filial, atualiza o localStorage com as filiais selecionadas
                $('#filial').on('change', function() {
                    var filiaisSelecionadas = $(this).val() || [];
                    localStorage.setItem('filiaisSelecionadas', JSON.stringify(filiaisSelecionadas));
                });

                // Checkbox para selecionar todas as filiais
                $("#select_todos").click(function() {
                    if ($(this).is(':checked')) {
                        $('#filial option').prop('selected', true);
                        $('#filial').trigger('change');
                    } else {
                        $('#filial option').prop('selected', false);
                        $('#filial').trigger('change');
                    }
                });
            });



            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();
            }

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

                if (!valor || valor === 'Todos') {
                    campoValido = false;
                    campo.classList.add('is-invalido');
                } else {
                    campo.classList.remove('is-invalido');
                }
                return campoValido;
            }

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

            window.onload = verificarErroNaURL;
        </script>

        <script>
            $(document).ready(function() {
                // Inicializa o Select2 no campo de seleção de ano
                $('#ano').select2({
                    placeholder: "Selecione os anos",
                    allowClear: true,
                    dropdownParent: $('body'),
                    maximumSelectionLength: 2, // Limita a seleção a 2 opções
                    language: {
                        noResults: function() {
                            return "Nenhum resultado encontrado";
                        },
                        searching: function() {
                            return "Procurando...";
                        },
                        maximumSelected: function(args) { // Mensagem personalizada
                            return "Você só pode selecionar até 2 anos.";
                        }
                    }
                });

                // Validação para garantir pelo menos dois anos selecionados
                $('form').on('submit', function(e) {
                    const selectedYears = $('#ano').val(); // Obtem os anos selecionados

                    if (!selectedYears || selectedYears.length < 2) {
                        e.preventDefault(); // Impede o envio do formulário
                        alert("Você deve selecionar pelo menos dois anos.");
                        $('#ano').focus();
                    }
                });
            });

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

            $(document).ready(function() {
                var table = $('#datatable-buttons').DataTable({
                    "language": {
                        "url": "https://cdn.datatables.net/plug-ins/1.10.21/i18n/Portuguese-Brasil.json"
                    },
                    "ordering": true,
                    "responsive": true,
                    "autoWidth": false,
                    "order": [
                        [0, 'asc']
                    ],
                    "dom": 'Bfrtip',
                    "paging": false, // Remove a paginação
                    "searching": false, // Remove o campo de pesquisa
                    "info": false // Remove a informação sobre as linhas exibidas
                });

            });

            $(document).ready(function() {
                var table = $('#datatable-buttons-meses').DataTable({
                    "language": {
                        "url": "https://cdn.datatables.net/plug-ins/1.10.21/i18n/Portuguese-Brasil.json"
                    },
                    "ordering": true,
                    "responsive": true,
                    "autoWidth": false,
                    "order": false,
                    "dom": 'Bfrtip',
                    "paging": false, // Remove a paginação
                    "searching": false, // Remove o campo de pesquisa
                    "info": false // Remove a informação sobre as linhas exibidas
                });

            });

            $(document).ready(function() {
                var table = $('#datatable-buttons-ano').DataTable({
                    "language": {
                        "url": "https://cdn.datatables.net/plug-ins/1.10.21/i18n/Portuguese-Brasil.json"
                    },
                    "ordering": true,
                    "responsive": true,
                    "autoWidth": false,
                    "order": false,
                    "dom": 'Bfrtip',
                    "paging": false, // Remove a paginação
                    "searching": false, // Remove o campo de pesquisa
                    "info": false // Remove a informação sobre as linhas exibidas
                });

            });

            function openModal(button) {
                var ano = button.getAttribute('data-ano');
                var mes = button.getAttribute('data-mes');
                var cidade = button.getAttribute('data-cidade');
                var filial = button.getAttribute('data-cod-filial');


                document.getElementById('anopcp').value = ano;
                document.getElementById('mespcp').value = mes;
                document.getElementById('filialpcp').value = filial;
                document.getElementById('cidadepcp').value = cidade;
                document.getElementById('myModalAdicaoPCP').style.display = 'block';
            }

            function closeModal() {
                document.getElementById('myModalAdicaoPCP').style.display = 'none';
            }

            function confirmarExclusao() {
                document.getElementById('formExclusao').submit();
                closeModal();
            }

            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();
            }

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

            window.onload = verificarErroNaURL;

            document.addEventListener("DOMContentLoaded", function() {
                // Remove status and message parameters from URL
                const url = new URL(window.location);
                url.searchParams.delete('status');
                url.searchParams.delete('message');
                window.history.replaceState({}, document.title, url);

            });

            $(document).ready(function() {
                // Função para preencher o combo de filiais com Select2
                function carregarFiliais(cidade) {
                    console.log("Cidade selecionada: " + cidade); // Adiciona log para depuração

                    $.ajax({
                        url: 'get_filiais.php', // Verifique se o caminho está correto
                        type: 'POST',
                        dataType: 'json',
                        data: {
                            cidade: cidade
                        },
                        success: function(data) {
                            console.log("Filiais carregadas: ", data); // Adiciona log para depuração

                            $('#filial').empty().select2({
                                placeholder: 'Selecione uma ou mais filiais',
                                data: data.map(function(item) {
                                    return {
                                        id: item.id,
                                        text: item.nome_filial
                                    };
                                })
                            });

                            // Recuperar filiais selecionadas do localStorage, se existirem
                            var filiaisSelecionadas = JSON.parse(localStorage.getItem('filiaisSelecionadas')) || [];

                            // Selecionar as filiais recuperadas
                            $('#filial').val(filiaisSelecionadas).trigger('change');
                        },

                    });
                }

                // Ao carregar a página, chama a função para preencher o combo de filiais com base na cidade inicial
                carregarFiliais($('#cidade').val());

                // Ao alterar a cidade, chama a função para preencher o combo de filiais com base na nova cidade selecionada
                $('#cidade').change(function() {
                    const cidade = $(this).val();
                    carregarFiliais(cidade);
                });

                // Ao selecionar ou deselecionar uma filial, atualiza o localStorage com as filiais selecionadas
                $('#filial').on('change', function() {
                    var filiaisSelecionadas = $(this).val() || [];
                    localStorage.setItem('filiaisSelecionadas', JSON.stringify(filiaisSelecionadas));
                });

                // Checkbox para selecionar todas as filiais
                $("#select_todos").click(function() {
                    if ($(this).is(':checked')) {
                        $('#filial option').prop('selected', true);
                        $('#filial').trigger('change');
                    } else {
                        $('#filial option').prop('selected', false);
                        $('#filial').trigger('change');
                    }
                });
            });
        </script>

        <script>
            $(document).ready(function() {
                $('#nomeVisitador').select2({
                    theme: 'bootstrap-5',
                    width: '100%',
                    language: {
                        noResults: function() {
                            return "Nenhum resultado encontrado";
                        },
                        searching: function() {
                            return "Pesquisando...";
                        }
                    }
                });
            });
        </script>

</body>

</html>

<style>
    .is-invalido {
        box-shadow: 0 0 5px red !important;
    }

    .dropdown-menu {
        display: none;
        max-height: 300px;
        overflow-y: auto;
        position: absolute;
        z-index: 1000;
    }

    .dropdown-item {
        cursor: pointer;
    }

    .drop {
        position: relative;
        bottom: 30px;
    }
</style>