<?php
require '../conexao/conexao.php';
require '../sessao.php';
require '../configuacoes.php';
require '../configuracao/get_config.php';
require './consulta_bd.php';
require '../conexao/acesso.php';

header('Content-Type: text/html; charset=UTF-8');
setlocale(LC_MONETARY, 'pt_BR');

ini_set('display_errors', 1);
ini_set('display_startup_errors', 1);
error_reporting(E_ALL);

$vendedor = null;
$peso_diaatual = 0;
$pesoUltimoDia = 0;
$configuracoes = new Configuracoes;
$consulta_comercial = new ConsultaComercial();
$operacoes = $configuracoes->get_operacoes_em_uso();
$meu_periodo = $configuracoes->getPeriodo();

if (!empty($operacoes)) {
    sort($operacoes);
    $operacoes = implode(',', array_map('intval', $operacoes));
} else {
    $operacoes = 'NULL';
}

$cidade = $_GET['cidade'] ?? null; // Certifique-se de que o nome do parâmetro corresponde ao usado na página anterior
$ano = $_GET['ano'] ?? date('Y');
$mes = $_GET['mes'] ?? date('m');
$filial = $_GET['filial'] ?? null;
$semana = $_GET['semana'] ?? null;
$periodo = $_GET['periodo'] ?? null;

// Lógica de datas base (Mês e Quinzena)
$mes_formatado = str_pad($mes, 2, '0', STR_PAD_LEFT);
$ano_formatado = str_pad($ano, 4, '0', STR_PAD_LEFT);
$ultimo_dia = date("t", mktime(0, 0, 0, $mes_formatado, 1, $ano_formatado));

$data_inicio = "$ano_formatado-$mes_formatado-01";
$data_fim    = "$ano_formatado-$mes_formatado-$ultimo_dia";

if ($periodo == 1) {
    $data_fim = "$ano_formatado-$mes_formatado-15";
} elseif ($periodo == 2) {
    $data_inicio = "$ano_formatado-$mes_formatado-16";
}

// Se for semana, sobrescreve as datas
if ($meu_periodo == 'Semana' && !empty($semana) && $semana != 'mes') {
    $periodo_semana = $configuracoes->getPeriodoSemana($ano, $mes, $semana);
    if ($periodo_semana) {
        $data_inicio = $periodo_semana['data_inicial'];
        $data_fim    = $periodo_semana['data_final'];
    }
}

// Limitar a data final até o dia anterior (Ontem) ---
if (!empty($data_fim)) {
    $data_ontem = date('Y-m-d', strtotime('-1 day'));
    if ($data_fim > $data_ontem) {
        $data_fim = $data_ontem;
    }
}

function getBadgeClassmeta($percentage)
{
    if ($percentage < 0) {
        return 'badge-success';
    } elseif ($percentage <= 10) {
        return 'badge-warning';
    } elseif ($percentage > 10 && $percentage < 110) {
        return 'badge-danger';
    } elseif ($percentage >= 110) {
        return 'badge-primary';
    } else {
        return 'badge-secondary'; // ou outra classe de sua escolha para situações não esperadas
    }
}


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';
    }
}

function formatarNumero($numero)
{
    if ($numero >= 1000) {
        // Arredonda o número completo antes da formatação
        return number_format($numero / 1000, 1, ',', '.') . "k";
    } else {
        return number_format($numero, 2, ',', '.');
    }
}


$hojeFormatado = date('Y-m-d');
//$hoje = DateTime::createFromFormat('d-m-Y H:i', '23-11-2024 08:51');
//$hojeFormatado = $hoje->format('Y-m-d');
// Obtém o mês e ano da data atual
$mesAtual = date('m', strtotime($hojeFormatado));
$anoAtual = date('Y', strtotime($hojeFormatado));
// Verifica se a cidade não é "Todos"
$caixaliberado = $configuracoes->getCaixaLiberado($ano, $mes, $filial);
if ($cidade !== "Todos") {
    // Obter ID da cidade
    $id_cidade_atual = $consulta_comercial->getIdCidade($cidade);

    if ($id_cidade_atual) {
        // Obter peso do dia atual
        $peso_diaatual = $configuracoes->getPesoDiaAtual($mes, $ano, $id_cidade_atual, $periodo, $semana);
        $pesoUltimoDia = $configuracoes->getPesoUltimoDia($mes, $ano, $id_cidade_atual, $periodo, $semana);
    }
} else {
    // Se a cidade for "Todos", usar os métodos específicos
    $peso_diaatual = $configuracoes->getPesoAtualTodos($mes, $ano, $caixaliberado, $periodo, $semana);
    $pesoUltimoDia = $configuracoes->getPesoUltimoDiaTodos($mes, $ano, $caixaliberado, $periodo, $semana);
}
$diasrestantes = $pesoUltimoDia - $peso_diaatual;


$sql_percentuais = "SELECT valor_percentual FROM percentual ORDER BY valor_percentual DESC";
$result_percentuais = $connectionmysql->query($sql_percentuais);
$percentualArray = array();
if ($result_percentuais) {
    while ($row_percentual = $result_percentuais->fetch_assoc()) {
        $percentualArray[] = $row_percentual['valor_percentual'];
    }
} else {
    echo "Erro na execução da consulta: " . $connectionmysql->error;
}
?>

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



<head>
    <style>
        .table td,
        .table th {
            word-wrap: break-word;
        }

        .table thead th {
            white-space: nowrap;
        }

        .table {
            width: 100%;
        }

        .table-responsive {
            display: block;
            overflow-x: auto;
            max-width: 100%;
            /* Ajuste a largura máxima conforme necessário */
        }
    </style>

</head>

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

<body>

    <body>

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

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

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

                <!-- start page title -->
                <div class="row">
                    <div class="col-12">
                        <div class="page-title-box">
                            <div class="row align-items-center">
                                <div class="col-6">
                                    <h4 class="page-title">Detalhamento Comercial</h4>
                                </div>
                                <div class="col-6 text-right">
                                    <button onclick="goBack()" class="btn btn-info"><i class="mdi mdi-keyboard-backspace"></i> Voltar</button>
                                </div>
                            </div>
                        </div>
                    </div>
                </div>
                <!-- end page title -->


                <div class="row">
                    <div class="col-xl-12">
                        <div class="card">
                            <div class="card-body">
                                <!-- <h4 class="page-title-box">Dashboard</h4> -->
                                <ul class="nav nav-tabs">
                                    <li class="nav-item">
                                        <a href="#geral" data-bs-toggle="tab" aria-expanded="false" class="nav-link active" id="geral-tab">
                                            Geral
                                        </a>
                                    </li>
                                    <li class="nav-item">
                                        <a href="#vendedores" data-bs-toggle="tab" aria-expanded="false" class="nav-link " id="vendedores-tab">
                                            Vendedores
                                        </a>
                                    </li>
                                    <li class="nav-item">
                                        <a href="#ranking" data-bs-toggle="tab" aria-expanded="false" class="nav-link" id="ranking-tab">
                                            Ranking
                                        </a>
                                    </li>
                                </ul>



                                <div id="loading-overlay" style="margin-top: 10px;">
                                    <div class="spinner"></div>
                                </div>

                                <div class="tab-content">
                                    <div class="tab-pane show active" id="geral">
                                        <?php include('geral.php');
                                        ?>
                                    </div>
                                    <!-- INÍCIO DO CONTEÚDO DA ABA vendedores-->
                                    <div class="tab-pane " id="vendedores">
                                        <?php //include('vendedores.php'); 
                                        ?>
                                    </div>
                                    <!-- FIM DA ABA VENDEDORES-->

                                    <!-- INÍCIO DO CONTEÚDO DA ABA GERAL-->

                                    <!-- FIM DA ABA GERAL-->


                                    <!-- INÍCIO DO CONTEÚDO DA ABA RANKING-->
                                    <div class="tab-pane" id="ranking">
                                        <?php //include('top_dez.php'); 
                                        ?>
                                    </div>
                                    <!-- FIM DA ABA RANKING-->
                                </div>
                            </div>





                        </div> <!-- end card-->


                    </div> <!-- end col -->




                </div>
                <!-- end row -->

            </div> <!-- end container -->
        </div>
        <!-- end wrapper -->

        <!-- ============================================================== -->
        <!-- End Page content -->
        <!-- ============================================================== -->
        <!-- Footer Start -->
        <?php
        include('../geral/footer.php');
        ?>
        <!-- end Footer -->

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

        <!-- Right bar overlay-->
        <div class="rightbar-overlay"></div>

        <!-- Vendor js -->
        <script src="../../assets/js/vendor.min.js"></script>
        <script src="../../assets/libs/jquery/jquery.min.js"></script>
        <script src="../../assets/libs/bootstrap/js/bootstrap.bundle.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="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">

    </body>

</html>

<style>
    /* Estilo para o indicador de carregamento */
    .loading-indicator {
        border: 8px solid #f3f3f3;
        /* Cor de fundo */
        border-top: 8px solid #3498db;
        /* Cor da bolinha */
        border-radius: 50%;
        /* Formato de bolinha */
        width: 40px;
        /* Tamanho da bolinha */
        height: 40px;
        /* Tamanho da bolinha */
        animation: spin 1s linear infinite;
        /* Animação de rotação */
        margin: 0 auto;
        /* Centralizar a bolinha */
    }

    /* Animação de rotação */
    @keyframes spin {
        0% {
            transform: rotate(0deg);
        }

        100% {
            transform: rotate(360deg);
        }
    }
</style>

<script>
    function goBack() {
        window.history.back();
    }
</script>

<script>
    document.getElementById('nomeFuncionario').addEventListener('click', function() {
        var modal = new bootstrap.Modal(document.getElementById('bs-example-modal-lg'));
        modal.show();
    });
</script>

<script>
    // Aguarda o carregamento completo da página
    window.addEventListener('load', function() {
        // Remove o overlay de loading
        const loadingOverlay = document.getElementById('loading-overlay');
        const content = document.getElementById('content');
        loadingOverlay.style.display = 'none';
        content.style.display = 'block';
    });
</script>


<script>
    let dadosvendedor = null;
    let carregouPaginavendedor = false;


    $(document).ready(function() {

        $("#vendedores-tab").click(function(event) {
            event.preventDefault();
            if (!carregouPaginavendedor) {
                // Exibir mensagem de carregamento
                $('#vendedores').html('<div class="loading-indicator"></div><p>Carregando...</p>');
                // Carrega a página apenas na primeira vez
                console.log("Carregando a página...");
                let filial = "<?php echo $filial; ?>";
                let ano = "<?php echo $ano; ?>";
                let mes = "<?php echo $mes; ?>";
                let diasrestantes = "<?php echo $diasrestantes; ?>";
                let cidade = "<?php echo $cidade; ?>";
                let periodo = "<?php echo $periodo; ?>";
                let semana = "<?php echo $semana; ?>";
                let data_inicio = "<?php echo $data_inicio; ?>";
                let data_fim = "<?php echo $data_fim; ?>";
                let url = "vendedores.php?filial=" + filial + "&ano=" + ano + "&mes=" + mes + "&diasrestantes=" + diasrestantes + "&cidade=" + cidade + "&periodo=" + periodo + "&semana=" + semana + "&data_inicio=" + data_inicio + "&data_fim=" + data_fim;

                $.ajax({
                    url: url,
                    success: function(data) {
                        dadosvendedor = data;
                        $("#vendedores").html(data);
                        carregouPaginavendedor = true;
                    }
                });
            } else {
                // Reutiliza dados já carregados
                $("#vendedores").html(dadosvendedor);
            }
        });


    });



    let dadosranking = null;
    let carregouPaginaranking = false;

    $(document).ready(function() {
        $("#ranking-tab").click(function(event) {
            event.preventDefault();

            if (!carregouPaginaranking) {
                // Carrega a página apenas na primeira vez
                $('#ranking').html('<div class="loading-indicator"></div><p>Carregando...</p>');
                console.log("Carregando a página...");
                let filial = "<?php echo $filial; ?>";
                let ano = "<?php echo $ano; ?>";
                let mes = "<?php echo $mes; ?>";
                let periodo = "<?php echo $periodo; ?>";
                let semana = "<?php echo $semana; ?>";
                let data_inicio = "<?php echo $data_inicio; ?>";
                let data_fim = "<?php echo $data_fim; ?>";
                let url = "top_dez.php?filial=" + encodeURIComponent(filial) + "&ano=" + encodeURIComponent(ano) + "&mes=" + encodeURIComponent(mes) + "&periodo=" + encodeURIComponent(periodo) + "&semana=" + encodeURIComponent(semana) + "&data_inicio=" + encodeURIComponent(data_inicio) + "&data_fim=" + encodeURIComponent(data_fim);

                $.ajax({
                    url: url,
                    method: "GET",
                    success: function(data) {
                        dadosranking = data;
                        $("#ranking").html(data);
                        carregouPaginaranking = true;
                    },
                    error: function(jqXHR, textStatus, errorThrown) {
                        console.error("Erro ao carregar dados: ", textStatus, errorThrown);
                    }
                });
            } else {
                // Reutiliza dados já carregados
                $("#ranking").html(dadosranking);
            }
        });
    });
</script>