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

// 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)));

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 ($etapa && $etapa != 'Todos') {

    $query_etapa = "SELECT 
CODIGO, NOMETIPO as nome_etapa 
FROM 
FORMAFARMACEUTICA_PROCESSO_TIPO
WHERE CODIGO = $etapa";

    $result_etapa = ibase_query($connection, $query_etapa);

    if (!$result_etapa) {
        die("Erro na consulta SQL (Etapa): " . ibase_errmsg());
    }
}

if ($etapa && $etapa != 'Todos') {
    // Buscar dados de etapa
    while ($row = ibase_fetch_assoc($result_etapa)) {
        $row['NOME_ETAPA'] = mb_convert_encoding($row['NOME_ETAPA'], 'UTF-8', 'ISO-8859-1');
    }
}

if ($funcionario) {

    $query_funcionario = "SELECT 
    CODIGO, NOMEFUNCIONARIO as nome_funcionario 
    FROM 
    FUNCIONARIO 
    WHERE CODIGO = $funcionario";

    $result_funcionario = ibase_query($connection, $query_funcionario);

    if (!$result_funcionario) {
        die("Erro na consulta SQL (Funcionario): " . ibase_errmsg());
    }
}

if ($funcionario) {
    // Buscar dados de Funcionario
    while ($row = ibase_fetch_assoc($result_funcionario)) {
        $row['NOME_FUNCIONARIO'] = mb_convert_encoding($row['NOME_FUNCIONARIO'], 'UTF-8', 'ISO-8859-1');
    }
}

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

    $query = "
    SELECT 
        id_funcionario,
        id_etapa,
        COUNT(*) as total_processos,
        SUM(tempo_segundos) as tempo_total,
        MIN(data_processo) as primeira_data,
        MAX(data_processo) as ultima_data
    FROM receitas
    WHERE 1=1
    ";

    // 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');
        $query .= " AND data_processo BETWEEN '" . $data_inicio . "' AND '" . $data_fim . "'";
    }

    // Filtro de manipulador
    if (!empty($_GET['manipulador']) && !empty($campo_etapa)) {
        $manipulador = addslashes($_GET['manipulador']);
        $query .= " AND id_funcionario LIKE '%$manipulador%'";
    }

    // Filtro de etapa
    if (!empty($_GET['etapa']) && $_GET['etapa'] != 'Todos') {
        $etapa = intval($_GET['etapa']);
        $query .= " AND id_etapa = $etapa";
    }

    $query .= "
    GROUP BY id_funcionario, id_etapa
    ORDER BY id_funcionario
    ";

    $result_geral = mysqli_query($connectionmysql, $query);

    if (!$result_geral) {
        die('Erro na consulta: ' . mysqli_error($connectionmysql));
    }
}

?>

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

<?php
$pageTitle = "PCP - Resultado"; // 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="detalhes_vendedor.php" id="indexForm" onsubmit="return validarFormulario();">
                            <h3>Detalhamento Lead Time</h3>
                    </div>

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

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

                    <?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-2" style="align-items:center;justify-content: end;">
                        <div>
                            <button class="btn btn-primary mr-2" type="button" onclick="history.back();">Voltar</button>
                        </div>
                        <div>
                            <a href="detalhes_vendedor.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="col-12 text-center">

                    <div class="col-12 text-center">
                        <h6>Resultado</h6>


                    </div>

                    <div class="card">
                        <div class="card-body">

                            <ul class="nav nav-tabs">
                                <li class="nav-item">
                                    <a href="#geral" data-bs-toggle="tab" aria-expanded="true" class="nav-link active">
                                        Visão Geral
                                    </a>
                                </li>

                            </ul>
                            <div class="tab-content">
                                <div class="tab-pane show active" id="geral">
                                    <table id="minhaTabela" class="table table-striped table-bordered dt-responsive nowrap">
                                        <thead class="thead-light">
                                            <tr>
                                                <th scope="col" style="text-align: center;">Funcionário</th>
                                                <th scope="col" style="text-align: center;">QTD Fórmulas</th>
                                                <th scope="col" style="text-align: center;">Tempo Gasto (Horas)</th>
                                                <th scope="col" style="text-align: center;">Média de Tempo Gasto (Por Fórmulas)</th>
                                            </tr>
                                        </thead>
                                        <tbody>
                                            <?php
                                            $hasResults = false;
                                            $totalFormulas = 0;
                                            $nome_funcionario = utf8_decode("Não há nome do funcionário");

                                            while ($row = mysqli_fetch_assoc($result_geral)) {
                                                $encontroualgumregistro = true;
                                                $hasResults = true;
                                                $query_funcionario = "SELECT 
                                                        CODIGO, NOMEFUNCIONARIO as nome_funcionario 
                                                        FROM 
                                                        FUNCIONARIO 
                                                        WHERE CODIGO = {$row['id_funcionario']}";

                                                $result_funcionario = ibase_query($connection, $query_funcionario);

                                                while ($row_funcionario = ibase_fetch_assoc($result_funcionario)) {
                                                    $nome_funcionario = mb_convert_encoding($row_funcionario['NOME_FUNCIONARIO'], 'UTF-8', 'ISO-8859-1');
                                                    //echo $nome_funcionario;
                                                }

                                                $nomefun = mb_convert_encoding($nome_funcionario, 'UTF-8', 'ISO-8859-1');

                                                // Exibindo os dados na tabela
                                            ?>
                                                <tr>

                                                    <td><a href="detalhamento_geral.php?manipulador=<?= $row['id_funcionario'] ?>&etapa=<?php echo $_GET['etapa']; ?>&data=<?php echo $_GET['data'] ?>&data_ate=<?php echo $_GET['data_ate'] ?>&pesquisar="><?= htmlspecialchars($nomefun) ?></a></td>
                                                    <td style="text-align: center;"><?= $row['total_processos'] ?></td>
                                                    <td style="text-align: center;">
                                                        <?php
                                                        // Convertendo segundos para horas, minutos e segundos
                                                        $tempo_total_segundos = $row['tempo_total'];

                                                        // Calcula horas, minutos e segundos
                                                        $horas = floor($tempo_total_segundos / 3600); // Horas inteiras
                                                        $minutos = floor(($tempo_total_segundos % 3600) / 60); // Minutos restantes
                                                        $segundos = $tempo_total_segundos % 60; // Segundos restantes

                                                        // Formata no estilo hh:mm:ss
                                                        $tempo_formatado = sprintf('%02d:%02d:%02d', $horas, $minutos, $segundos);

                                                        echo $tempo_formatado;
                                                        ?>
                                                    </td>
                                                    <td style="text-align: center;">
                                                        <?php
                                                        // Verifica se os valores estão definidos
                                                        $tempo_total_segundos = isset($row['tempo_total']) ? (int)$row['tempo_total'] : 0;
                                                        $total_receitas = isset($row['total_processos']) ? (int)$row['total_processos'] : 1; // Garante que não haja divisão por zero

                                                        // Calcula a média de tempo em segundos
                                                        if ($total_receitas > 0 && $tempo_total_segundos > 0) {
                                                            $media_tempo_segundos = floor($tempo_total_segundos / $total_receitas); // Média em segundos

                                                            // Converte para horas, minutos e segundos
                                                            $horas = floor($media_tempo_segundos / 3600);
                                                            $minutos = floor(($media_tempo_segundos % 3600) / 60);
                                                            $segundos = $media_tempo_segundos % 60;

                                                            // Formata a média no estilo hh:mm:ss
                                                            $media_tempo_formatado = sprintf('%02d:%02d:%02d', $horas, $minutos, $segundos);
                                                        } else {
                                                            $media_tempo_formatado = '00:00:00'; // Caso os valores não sejam válidos
                                                        }

                                                        // Exibe a média de tempo formatada
                                                        echo $media_tempo_formatado;
                                                        ?>
                                                    </td>
                                                </tr>
                                            <?php
                                            }

                                            // Exibe a linha do totalizador
                                            ?>

                                            <?php
                                            if (!$hasResults) {
                                                // Código para lidar com o caso de não haver resultados
                                                echo "<tr><td colspan='8'>Nenhum registro encontrado para anteriores a hoje.</td></tr>";
                                            }
                                            ?>
                                        </tbody>
                                    </table>

                                </div>

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

                        </div>

                    </div>
                </div>


                <!-- end wrapper -->
            <?php

                // Verifica se não encontrou registros
                if ($encontroualgumregistro === false) {
                    echo '<script>alert("Sem resultado para consulta");</script>';
                }
            } ?>
            <!-- ============================================================== -->
            <!-- End Page content -->
            <!-- ============================================================== -->

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

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


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

                    $('#minhaTabela').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>

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

            <!-- Vendor js -->
            <script src="https://code.jquery.com/jquery-3.6.0.min.js"></script>
            <script src="../../assets/libs/bootstrap/js/bootstrap.bundle.min.js"></script>
            <script src="../../assets/js/vendor.min.js"></script>

            <!-- Init js -->
            <script src="../../assets/js/pages/form-advanced.init.js"></script>

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

            <!-- DataTables JS -->
            <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/responsive/2.4.1/css/responsive.dataTables.min.css">
            <script src="https://cdn.datatables.net/responsive/2.4.1/js/dataTables.responsive.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>


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

            <style>
                #minhaTabela_length label,
                #minhaTabela_info {
                    margin: 0 !important;
                    padding: 0 !important;
                    align-items: center;
                }
            </style>
</body>

</html>