<?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 '../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();


$filiais = $consulta_bb->get_filiais();

function getBadgeClass($status)
{
    $lowerStatus = strtolower($status);

    if (strpos($lowerStatus, 'rejeitado') !== false) {
        return 'badge-danger';
    } elseif (strpos($lowerStatus, 'aprovado') !== false) {
        return 'badge-success';
    } else {
        return 'badge-secondary';  // ou qualquer outra classe padrão
    }
}

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

$periodo = $_GET['periodo'] ?? 'este_mes';
$data_inicio = $_GET['data_inicio'] ?? null;
$data_fim = $_GET['data_fim'] ?? null;
$filial = $_GET['filial'] ?? null;
$setor = $_GET['setor'] ?? null;

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

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

    // Processa as datas conforme o período selecionado
    if ($periodo !== 'personalizado') {
        $hoje = new DateTime();
        
        switch($periodo) {
            case 'hoje':
                $data_inicio = $hoje->format('Y-m-d');
                $data_fim = $hoje->format('Y-m-d');
                break;
                
            case 'ontem':
                $ontem = clone $hoje;
                $ontem->modify('-1 day');
                $data_inicio = $ontem->format('Y-m-d');
                $data_fim = $ontem->format('Y-m-d');
                break;
                
            case 'esta_semana':
                $primeiroDiaSemana = clone $hoje;
                $diaSemana = $hoje->format('N'); // 1 = segunda, 7 = domingo
                $diff = $diaSemana - 1;
                $primeiroDiaSemana->modify("-$diff days");
                
                $ultimoDiaSemana = clone $primeiroDiaSemana;
                $ultimoDiaSemana->modify('+6 days');
                
                $data_inicio = $primeiroDiaSemana->format('Y-m-d');
                $data_fim = $ultimoDiaSemana->format('Y-m-d');
                break;
                
            case 'esta_quinzena':
                $diaAtual = (int)$hoje->format('d');
                if ($diaAtual <= 15) {
                    // Primeira quinzena
                    $data_inicio = $hoje->format('Y-m-01');
                    $data_fim = $hoje->format('Y-m-15');
                } else {
                    // Segunda quinzena
                    $data_inicio = $hoje->format('Y-m-16');
                    $data_fim = $hoje->format('Y-m-t');
                }
                break;
                
            case 'este_mes':
            default:
                $data_inicio = $hoje->format('Y-m-01');
                $data_fim = $hoje->format('Y-m-t');
                break;
        }
    }
    
    // Validação básica das datas
    if (!$data_inicio || !$data_fim) {
        $data_inicio = date('Y-m-01');
        $data_fim = date('Y-m-t');
    }


    $query_clientes = " SELECT 
    RC.CODLJ AS COD_Filial,
    RC.LJ AS Filial,
    RC.CLI AS CODIGO_CLIENTE,
    C.NOMECLIENTE,
    C.EMAIL1,
    (SELECT FIRST 1 TL.TELEFONEPREFIXO || ' ' || TL.TELEFONE
     FROM CADASTRO_TELEFONE TL 
     WHERE TL.TIPO_CADASTRO = 1 
       AND TL.CODIGO_CADASTRO = C.CODIGO 
       AND TL.PRINCIPAL = -1) AS tel,
    (SELECT FIRST 1 TL.TELEFONEPREFIXO || ' ' || TL.TELEFONE
     FROM CADASTRO_TELEFONE TL 
     WHERE TL.TIPO_CADASTRO = 1 
       AND TL.CODIGO_CADASTRO = C.CODIGO 
       AND TL.PRINCIPAL = 0) AS telefone2,
    CAST(C.cadastro_dt AS DATE) AS data_cadastro,
    RC.QTD_ALO AS QTD_MANIPULADO,
    RC.VLR_ALO AS VLR_MANIPULADO,
    RC.VLR_HOM AS VLR_HOMEOPATIA,
    RC.QTD_REV AS QTD_REVENDA,
    RC.VLR_REV AS VLR_REVENDA,
    RC.QTD_TOTAL AS QTD_TOTAL,
    RC.VLR_TOTAL AS VLR_TOTAL
FROM 
    RC_657('$data_inicio', '$data_fim') RC
LEFT JOIN CLIENTE C ON RC.CLI = C.CODIGO
LEFT JOIN CADASTRO_ENDERECO EN ON EN.TIPO_CADASTRO = 1 AND EN.CODIGO_CADASTRO = C.CODIGO AND EN.PRINCIPAL = -1
LEFT JOIN CIDADEESTADO CE ON EN.CODIGO_CIDADEESTADO = CE.CODIGO
LEFT JOIN REGIAODETALHE RD ON EN.CODIGO_REGIAODETALHE = RD.CODIGO
WHERE C.CODIGO IS NOT NULL
  AND C.NOMECLIENTE IS NOT NULL
  AND C.NOMECLIENTE <> '' ";
    if ($filial && $filial != "Todos") {
        $query_clientes .= " AND RC.CODLJ IN (" . intval($filial) . ")";
    }

    $query_clientes .= " ORDER BY C.cadastro_dt";

    //  echo $query_clientes;
    //  exit;

    $result_clientes = ibase_query($connection, $query_clientes);

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



function removerCaracteresEspeciais($string)
{
    return preg_replace('/[^A-Za-z0-9 ]/', '', $string);
}

//echo $sql_clientes_novos  ; 

?>


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

<?php
$pageTitle = "Clientes Novos"; // Definir o título da página aqui
include('../geral/header.php');
?>

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

                    <div class="col-6 text-left">
                        <h4 class="page-title">Consultar Clientes Novos</h4>

                    </div>


                    <div class="col-12">
                        <h5 class="page-title">Lista de clientes novos que efetuaram compras</h5>
                        <hr>
                    </div>

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

                                <div class="form-group col-6 col-md-4 col-lg-2">
                                    <label class="col-form-label">Filiais</label>
                                    <select name="filial" class="form-control">
                                        <option value="Todos" <?php if ($filial == 'Todos') echo 'selected'; ?>>Todos</option>
                                        <?php
                                        $listagemFiliais = $filiais->listarFiliais();
                                        foreach ($listagemFiliais as $itens) { ?>
                                            <option value="<?php echo $itens['id']; ?>" <?php if ($itens['id'] == $filial) {
                                                                                            echo 'selected';
                                                                                        } ?>>
                                                <?php echo $itens['nome_filial']; ?>
                                            </option>
                                        <?php } ?>
                                    </select>
                                </div>

                                <div class="form-group col-6 col-md-4 col-lg-2">
                                    <label class="col-form-label">Período</label>
                                    <select id="periodo" name="periodo" class="form-control">
                                        <option value="hoje" <?php echo (isset($_GET['periodo']) && $_GET['periodo'] == 'hoje') ? 'selected' : ''; ?>>Hoje</option>
                                        <option value="ontem" <?php echo (isset($_GET['periodo']) && $_GET['periodo'] == 'ontem') ? 'selected' : ''; ?>>Ontem</option>
                                        <option value="esta_semana" <?php echo (isset($_GET['periodo']) && $_GET['periodo'] == 'esta_semana') ? 'selected' : ''; ?>>Esta Semana</option>
                                        <option value="esta_quinzena" <?php echo (isset($_GET['periodo']) && $_GET['periodo'] == 'esta_quinzena') ? 'selected' : ''; ?>>Esta Quinzena</option>
                                        <option value="este_mes" <?php echo (isset($_GET['periodo']) && $_GET['periodo'] == 'este_mes') ? 'selected' : ''; ?>>Este Mês</option>
                                        <option value="personalizado" <?php echo (isset($_GET['periodo']) && $_GET['periodo'] == 'personalizado') ? 'selected' : ''; ?>>Personalizado</option>
                                    </select>
                                </div>

                                <div class="form-group col-6 col-md-4 col-lg-2">
                                    <label class="col-form-label">Data Inicial</label>
                                    <input type="date" id="data_inicio" name="data_inicio" class="form-control" 
                                           value="<?php echo isset($_GET['data_inicio']) ? $_GET['data_inicio'] : ''; ?>">
                                </div>

                                <div class="form-group col-6 col-md-4 col-lg-2">
                                    <label class="col-form-label">Data Final</label>
                                    <input type="date" id="data_fim" name="data_fim" class="form-control" 
                                           value="<?php echo isset($_GET['data_fim']) ? $_GET['data_fim'] : ''; ?>">
                                </div>

                                <div class="col-6 col-md-6 col-lg-4 d-flex" 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" type="submit" class="btn btn-primary"><i class="mdi mdi-magnify"></i> Pesquisar</button>
                                    </div>
                                </div>


                        </form>
                    </div>
                </div>
                <?php if (isset($_GET['pesquisar'])) { ?>
                    <div class="col-12">
                        <h6>
                            <?php echo 'Lista de Clientes Novos';

                            ?>
                        </h6>
                        <div class="row">
                            <div class="col-12">
                                <table id="minhaTabela" class="table table-bordered table-hover table-sm" style="width:100%; text-align: center;">
                                    <thead class="thead-light">
                                        <tr>
                                            <th>Código</th>
                                            <th>Nome Cliente</th>
                                            <th>Qtd Compras</th>
                                            <th>Valor Compras</th>
                                            <th>Telefone</th>
                                            <th>e-mail</th>
                                            <th>Data Cadastro</th>

                                        </tr>
                                    </thead>
                                    <tbody>
                                        <?php
                                        $hasResults = false;
                                        $totalValorRecebido = 0; // Inicializa o totalizador
                                        if (isset($result_clientes)) {
                                            $dataFiltroObj = new DateTime($data_inicio);
                                            $anoFiltro = $dataFiltroObj->format('Y');
                                            $mesFiltro = $dataFiltroObj->format('m');
                                            while ($row_cliente = ibase_fetch_assoc($result_clientes)) {
                                                // $row_cliente['NOMECLIENTE'] =  mb_convert_encoding($row_cliente['NOMECLIENTE'], 'UTF-8', 'ISO-8859-1');
                                                // foreach ($row_cliente as $key => $value) {
                                                //     $row_cliente[$key] = mb_convert_encoding($value, 'UTF-8', 'ISO-8859-1');
                                                // }
                                                $cdcli = $row_cliente['CODIGO_CLIENTE'];
                                                $nomecli = $row_cliente['NOMECLIENTE'];

                                                //print_r($row_cliente);exit;

                                                if (isset($row_cliente['QTD_TOTAL'])) {
                                                    $qtd_total = $row_cliente['QTD_TOTAL'];
                                                } else {
                                                    $qtd_total = '0';
                                                }
                                                if (isset($row_cliente['VLR_TOTAL'])) {
                                                    $valor_total = $row_cliente['VLR_TOTAL'];
                                                } else {
                                                    $valor_total = '0';
                                                }

                                                $hasResults = true; // Indica que encontrou ao menos um resultado
                                                echo '<tr>';

                                                //echo '<td>' . htmlspecialchars($row['CDPRO']) . ' </td>';
                                                // echo '<td><a href="#" class="open-modal-link" data-toggle="modal" data-target="#MyModal" data-produto="' . htmlspecialchars($row_cliente['CODIGO_CLIENTE']) . '">' . htmlspecialchars($row_cliente['CODIGO_CLIENTE']) . '</a></td>';
                                                echo '<td>
                            <a href="#" class="open-modal-link" data-toggle="modal" data-target="#MyModal" 
                            data-produto="' . htmlspecialchars($row_cliente['CODIGO_CLIENTE']) . '" 
                            data-filial="' . htmlspecialchars($filial) . '" 
                            data-inicio="' . htmlspecialchars($data_inicio) . '" 
                            data-fim="' . htmlspecialchars($data_fim) . '">'
                                                    . htmlspecialchars($row_cliente['CODIGO_CLIENTE']) .
                                                    '</a>
                        </td>';

                                                echo '<th scope="row">' . $row_cliente['NOMECLIENTE'] . '</th>';
                                                echo '<td style="text-align: center;">' . $qtd_total . '</td>';
                                                echo '<td  data-order="' . number_format($valor_total, 2, ',', '.') . '" style="text-align: center;">R$ ' . number_format($valor_total, 2, ',', '.') . '</td>';
                                                echo '<td style="text-align: left;">' . htmlspecialchars($row_cliente['TEL']) . ' </td>';
                                                echo '<td>' . htmlspecialchars($row_cliente['EMAIL1']) . ' </td>';
                                                $date = new DateTime($row_cliente['DATA_CADASTRO']);
                                                $formattedDate = $date->format('d/m/Y');
                                                echo '<td style="text-align: center;" data-order="' . $row_cliente['DATA_CADASTRO'] . '">' . htmlspecialchars($formattedDate) . '</td>';

                                                //echo '<td>R$ ' . htmlspecialchars($row['TOTAL']) . ' </td>';
                                                //echo '<td><a href='candidato-details.html" class="table-actions link-view"><i class="mdi mdi mdi-account-search"></i></a></td>';
                                                echo '</tr>';

                                                // Atualiza o totalizador
                                                // $totalValorRecebido += floatval($row['VL_RECEBIDO']);
                                            }
                                        }
                                        if (!$hasResults) {
                                            echo "<tr><td colspan='9' class='text-center'>Sem resultado para a consulta</td></tr>";
                                        }
                                        ?>
                                    </tbody>
                                </table>

                                <!-- Adiciona a linha com o totalizador -->
                                <div class="row">
                                    <div class="col-md-12">
                                        <!-- <h4>Total Valor Recebido: R$ <?php echo number_format($totalValorRecebido, 2, ',', '.'); ?></h4> -->
                                    </div>
                                </div>




                            </div>

                        </div>


                    </div>
                <?php } ?>
            </div>
        </div> <!-- end container -->
    </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>



</body>

</html>

<!-- No final do seu documento, antes dos scripts, adicione: -->
<!-- No final do seu documento, antes dos scripts, adicione: -->
<script>
    document.querySelector("button[name=pesquisar]").addEventListener("click", function(event) {

        let dias = document.querySelector("#dias").value.trim(); // Remova os espaços em branco extras

        if (dias === "") {
            event.preventDefault();
            alert("Por favor insira a quantidade de dias para realizar a consulta.");
        }
    });
</script>


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

<!-- third party js -->
<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">
<script>
    $(document).ready(function() {

        var order = [
            [1, "asc"]
        ];

        $('#minhaTabela').DataTable({
            "language": {
                "url": "https://cdn.datatables.net/plug-ins/1.10.21/i18n/Portuguese-Brasil.json"
            },
            "order": order,
            "ordering": true,
            "lengthMenu": [
                [10, 25, 50, 100, -1],
                [10, 25, 50, 100, "Todos"]
            ],
            "buttons": [
                'excelHtml5',
                'csvHtml5',
                'pdfHtml5'
            ],
            //   //"dom": 'lBfrtip',
            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
            "dom": '<"top"Bf><"datatable-scroll"t><"bottom d-flex justify-content-between align-items-center"lip><"clear">'

        });
    });
</script>

<!-- Modal -->
<div class="modal fade" id="MyModal" tabindex="-1" aria-labelledby="exampleModalLabel" aria-hidden="true">
    <div class="modal-dialog modal-lg">
        <div class="modal-content">
            <div class="modal-header">
                <h4 class="modal-title" id="standard-modalLabel">Lista de Compras do Cliente no mês</h4>
                <!-- Adicione um botão de fechar -->
                <button type="button" id="fecharModalBtn" class="btn-close" aria-label="Close"></button>
            </div>
            <div class="modal-body">
                <div id="detalhes-produto-container">
                    <!-- O conteúdo da página buscar_detalhes_produto.php será carregado aqui -->
                    <?php
                    include('buscar_detalhes_produto.php');
                    ?>
                </div>
            </div>
            <div class="modal-footer">
                <button type="button" class="btn btn-light" data-dismiss="modal" id="fecharModalBtn">Fechar</button>
            </div>
        </div>
    </div>
</div>

<script>
    // document.addEventListener("DOMContentLoaded", function() {
    //     const modalLinkElements = document.querySelectorAll(".open-modal-link");
    //     const modalContainer = document.getElementById("detalhes-produto-container");

    //     modalLinkElements.forEach(function(element) {
    //         element.addEventListener("click", function(event) {
    //             event.preventDefault();
    //             const requisicaoId = element.getAttribute("data-produto");
    //             const filial = element.getAttribute("data-filial");
    //             const ano = element.getAttribute("data-ano");
    //             const mes = element.getAttribute("data-mes");

    //             // Carregue a modal
    //             const modal1 = new bootstrap.Modal(document.getElementById("MyModal"));
    //             modal1.show();

    //             // Carregue o conteúdo da página buscar_detalhes_requisicao.php na modal
    //             modalContainer.innerHTML = '<p>Carregando...</p>';
    //             fetch(`buscar_detalhes_produto.php?id=${encodeURIComponent(requisicaoId)}&filial=${encodeURIComponent(filial)}&ano=${encodeURIComponent(ano)}&mes=${encodeURIComponent(mes)}`)
    //                 .then(response => response.text())
    //                 .then(data => {
    //                     modalContainer.innerHTML = data;
    //                 });
    //         });
    //     });
    // });

    document.addEventListener("DOMContentLoaded", function() {
        const modalLinkElements = document.querySelectorAll(".open-modal-link");
        const modalContainer = document.getElementById("detalhes-produto-container");

        modalLinkElements.forEach(function(element) {
            element.addEventListener("click", function(event) {
                event.preventDefault();
                
                const requisicaoId = element.getAttribute("data-produto");
                const filial = element.getAttribute("data-filial");
                // PEGANDO AS DATAS COMPLETAS AGORA
                const dataInicio = element.getAttribute("data-inicio"); 
                const dataFim = element.getAttribute("data-fim");

                const modal1 = new bootstrap.Modal(document.getElementById("MyModal"));
                modal1.show();

                modalContainer.innerHTML = '<div class="text-center p-3"><div class="spinner-border text-primary" role="status"></div><br>Carregando dados...</div>';
                
                // PASSANDO AS DATAS NA URL
                fetch(`buscar_detalhes_produto.php?id=${encodeURIComponent(requisicaoId)}&filial=${encodeURIComponent(filial)}&data_inicio=${encodeURIComponent(dataInicio)}&data_fim=${encodeURIComponent(dataFim)}`)
                    .then(response => response.text())
                    .then(data => {
                        modalContainer.innerHTML = data;
                        // Re-inicializa o DataTable se necessário, pois o HTML foi substituído
                        if ($.fn.DataTable.isDataTable('#minhaTabela1')) {
                            $('#minhaTabela1').DataTable().destroy();
                        }
                        // A inicialização do datatable já está dentro do arquivo que vem no fetch, então deve funcionar
                    });
            });
        });
    });



    //REMOVER O CINZA APÓS FECHAR A MODAL E PERMITIR O SCROLL
    var myModalEl = document.getElementById('standard-modal');
    myModalEl.addEventListener('hidden.bs.modal', function(event) {
        var modalsBackdrop = document.getElementsByClassName('modal-backdrop');
        while (modalsBackdrop.length > 0) {
            modalsBackdrop[0].parentNode.removeChild(modalsBackdrop[0]);
        }
        document.body.style.overflow = ''; // Reset overflow
    });
</script>

<script>
    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 === 'Selecione' || valor === 'Todos') {
            campoValido = false;
            campo.classList.add('is-invalido');
        } else {
            campo.classList.remove('is-invalido');
        }
        return campoValido;
    }


    function validarFormulario() {
        let camposValidos = true;
        const periodo = document.getElementById('periodo').value;
        const dataInicio = document.getElementById('data_inicio').value;
        const dataFim = document.getElementById('data_fim').value;

        // Validação básica do período
        if (!periodo) {
            camposValidos = false;
            showModal('exampleModal', 'Informação', 'Por favor, selecione um período para realizar a consulta.');
            return camposValidos;
        }

        // Se for período personalizado, valida as datas
        if (periodo === 'personalizado') {
            if (!dataInicio || !dataFim) {
                camposValidos = false;
                showModal('exampleModal', 'Informação', 'Por favor, selecione a data inicial e final para o período personalizado.');
                return camposValidos;
            }

            // Valida se a data inicial não é maior que a data final
            if (new Date(dataInicio) > new Date(dataFim)) {
                camposValidos = false;
                showModal('exampleModal', 'Informação', 'A data inicial não pode ser maior que a data final.');
                return camposValidos;
            }
        }

        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>

<style>
    .is-invalido {
        box-shadow: 0 0 5px red !important;
    }
</style>
<script>
    $(document).ready(function() {
        $('.dt-button').on('click', function() {
            $(this).toggleClass('loading');
        });
    });
</script>
<style>
    #minhaTabela_length,
    #minhaTabela_info {
        margin: 0 !important;
        padding: 0 !important;
        align-items: center;
    }
</style>

<script>
    $(document).ready(function() {
        // Função para ajustar as datas conforme o período selecionado
        function ajustarDatasPorPeriodo() {
            var periodo = $('#periodo').val();
            var dataInicio = $('#data_inicio');
            var dataFim = $('#data_fim');
            var hoje = new Date();
            
            // Formata data para YYYY-MM-DD
            function formatarData(data) {
                var ano = data.getFullYear();
                var mes = String(data.getMonth() + 1).padStart(2, '0');
                var dia = String(data.getDate()).padStart(2, '0');
                return ano + '-' + mes + '-' + dia;
            }
            
            switch(periodo) {
                case 'hoje':
                    dataInicio.val(formatarData(hoje));
                    dataFim.val(formatarData(hoje));
                    break;
                    
                case 'ontem':
                    var ontem = new Date(hoje);
                    ontem.setDate(ontem.getDate() - 1);
                    dataInicio.val(formatarData(ontem));
                    dataFim.val(formatarData(ontem));
                    break;
                    
                case 'esta_semana':
                    var primeiroDiaSemana = new Date(hoje);
                    var diaSemana = hoje.getDay();
                    var diff = diaSemana === 0 ? 6 : diaSemana - 1; // Ajuste para segunda-feira
                    primeiroDiaSemana.setDate(hoje.getDate() - diff);
                    
                    var ultimoDiaSemana = new Date(primeiroDiaSemana);
                    ultimoDiaSemana.setDate(primeiroDiaSemana.getDate() + 6);
                    
                    dataInicio.val(formatarData(primeiroDiaSemana));
                    dataFim.val(formatarData(ultimoDiaSemana));
                    break;
                    
                case 'esta_quinzena':
                    var diaAtual = hoje.getDate();
                    var primeiroDiaQuinzena;
                    var ultimoDiaQuinzena;
                    
                    if (diaAtual <= 15) {
                        // Primeira quinzena (1 a 15)
                        primeiroDiaQuinzena = new Date(hoje.getFullYear(), hoje.getMonth(), 1);
                        ultimoDiaQuinzena = new Date(hoje.getFullYear(), hoje.getMonth(), 15);
                    } else {
                        // Segunda quinzena (16 ao último dia do mês)
                        primeiroDiaQuinzena = new Date(hoje.getFullYear(), hoje.getMonth(), 16);
                        ultimoDiaQuinzena = new Date(hoje.getFullYear(), hoje.getMonth() + 1, 0);
                    }
                    
                    dataInicio.val(formatarData(primeiroDiaQuinzena));
                    dataFim.val(formatarData(ultimoDiaQuinzena));
                    break;
                    
                case 'este_mes':
                    var primeiroDiaMes = new Date(hoje.getFullYear(), hoje.getMonth(), 1);
                    var ultimoDiaMes = new Date(hoje.getFullYear(), hoje.getMonth() + 1, 0);
                    
                    dataInicio.val(formatarData(primeiroDiaMes));
                    dataFim.val(formatarData(ultimoDiaMes));
                    break;
                    
                case 'personalizado':
                    // Não altera as datas, permite que o usuário selecione
                    break;
            }
        }
        
        // Event listener para mudança no período
        $('#periodo').change(function() {
            ajustarDatasPorPeriodo();
        });
        
        // Event listeners para mudança manual nas datas
        $('#data_inicio, #data_fim').on('input change', function() {
            // Se o usuário alterar alguma data manualmente, muda o período para "personalizado"
            if ($('#periodo').val() !== 'personalizado') {
                $('#periodo').val('personalizado');
            }
        });
        
        // Ajustar datas no carregamento da página se um período estiver selecionado
        if ($('#periodo').val() && $('#periodo').val() !== 'personalizado') {
            ajustarDatasPorPeriodo();
        }
        
        // Validação do formulário
        $('form').on('submit', function(e) {
            var periodo = $('#periodo').val();
            var dataInicio = $('#data_inicio').val();
            var dataFim = $('#data_fim').val();
            
            if (periodo === 'personalizado') {
                if (!dataInicio || !dataFim) {
                    e.preventDefault();
                    alert('Por favor, selecione a data inicial e final para o período personalizado.');
                    return false;
                }
                
                if (new Date(dataInicio) > new Date(dataFim)) {
                    e.preventDefault();
                    alert('A data inicial não pode ser maior que a data final.');
                    return false;
                }
            }
        });
    });
</script>