<?php
require '../../conexao/conexao.php';
require '../../configuacoes.php';
require '../../sessao.php';

$meuPerfil = $_GET['perfil'] ?? null;
$meuPerfilID = $_GET['id_perfil'] ?? null;

$pageTitle = "Permissões dadas ao perfil $meuPerfil";
// Primeira consulta para obter os id_modulo permitidos
$stmt = $connectionmysql->prepare("SELECT id_modulo FROM perfil_modulo WHERE id_perfil = ?");

if ($stmt) {
    $stmt->bind_param("i", $meuPerfilID);
    $stmt->execute();

    $result = $stmt->get_result();
    $permissoes_do_perfil = array();

    if ($result->num_rows > 0) {
        while ($row = $result->fetch_assoc()) {
            $permissoes_do_perfil[] = $row['id_modulo'];
        }
    }

    $stmt->close();
} else {
    //echo "Erro ao preparar a declaração: " . $connectionmysql->error;
}

if (!empty($permissoes_do_perfil)) {
    // Define a estrutura inicial com os módulos na ordem desejada
    $modulos = [
        'Comercial' => [],
        'PCP' => [],
        'Geral' => [],
        'Configuracoes' => [],
        'Medicos' => [],
        'Clientes' => [],
        'Relatorios' => [],
        'Performance' => []
    ];

    $stmt = $connectionmysql->prepare("
       SELECT id_modulo, modulo, descricao
        FROM modulo");

    if ($stmt) {
        // Executa a consulta
        $stmt->execute();
        $result = $stmt->get_result();

        if ($result->num_rows > 0) {
            // Organiza os resultados em um array
            while ($row = $result->fetch_assoc()) {
                $modulo = $row['modulo'];
                $descricao = $row['descricao'];
                $id_modulo = (int)$row['id_modulo'];

                // Verifica se a categoria do módulo existe no array
                if (array_key_exists($modulo, $modulos)) {
                    // Adiciona o módulo à categoria correspondente
                    $modulos[$modulo][$descricao] = $id_modulo;
                }
            }

            // Exibe o array para ver o resultado final
        } else {
            //echo "Nenhum módulo encontrado.";
        }

        $stmt->close();
    } else {
        //echo "Erro ao preparar a declaração: " . $connectionmysql->error;
    }
} else {
    //echo "Nenhuma permissão encontrada para este perfil.";
}

include('../header.php');
include('../menu.php');

?>


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

<body>


    <!-- ============================================================== -->
    <!-- Start Page Content here -->
    <!-- ============================================================== -->
    <div class="wrapper">
        <div class="container-fluid">
            <div class="card-box mt-3">
                <div class="row">
                    <div class="col-6 text-left">
                        <h4 class="page-title">
                            <?php echo $pageTitle; ?>
                        </h4>
                    </div>
                    <div class="col-6 text-right">
                        <button onclick="goBack()" class="btn btn-light"><i class="mdi mdi-keyboard-backspace"></i> Voltar</button>
                    </div>
                    <div class="col-12">
                        <hr>
                    </div>
                    <div class="col-12">
                        <?php
                        $tabelaModulos = [];
                        if (!empty($modulos)) {
                            $colunasVazias = array_keys($modulos);
                        }
                        if (!empty($permissoes_do_perfil)) {
                            // Montar a tabela com base nas permissões
                            foreach ($modulos as $coluna => $itens) {
                                foreach ($itens as $nome => $id) {
                                    if (in_array($id, $permissoes_do_perfil)) {
                                        $tabelaModulos[$coluna][] = "$nome";
                                        // Remover a coluna da lista de colunas vazias, pois tem ao menos um item
                                        if (($key = array_search($coluna, $colunasVazias)) !== false) {
                                            unset($colunasVazias[$key]);
                                        }
                                    }
                                }
                            }

                            // Verificar se $tabelaModulos não está vazio antes de gerar a tabela
                            if (!empty($tabelaModulos)) {
                                // Gerar o HTML da tabela
                                echo '<table class="table table-bordered">';
                                echo '<thead class="thead-dark"><tr>';

                                foreach ($modulos as $coluna => $itens) {
                                    if (!in_array($coluna, $colunasVazias)) {
                                        echo "<th>$coluna</th>";
                                    }
                                }

                                echo '</tr></thead>';
                                echo '<tbody>';

                                // Determinar o número máximo de linhas necessárias
                                $maxRows = max(array_map('count', $tabelaModulos));

                                // Preencher as linhas da tabela
                                for ($i = 0; $i < $maxRows; $i++) {
                                    echo '<tr>';
                                    foreach ($modulos as $coluna => $itens) {
                                        if (!in_array($coluna, $colunasVazias)) {
                                            echo '<td>';
                                            echo isset($tabelaModulos[$coluna][$i]) ? $tabelaModulos[$coluna][$i] : '';
                                            echo '</td>';
                                        }
                                    }
                                    echo '</tr>';
                                }

                                echo '</tbody></table>';
                            } else {
                                echo '<div class="no-permissions">Não foi dada permisões a esse perfil</div>';
                            }
                        } else {
                            echo '<div class="no-permissions">Não foi dada permisões a esse perfil</div>';
                        }
                        ?>
                    </div>

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

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


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

<script>
    function goBack() {
        window.history.back();
    }
</script>
<style>
    .no-permissions {
        text-align: center;
        font-size: 1.5em;
        margin-top: 20px;

    }
</style>