<?php
require '../conexao/conexao.php';
//require '../sessao.php';
require '../conexao/acesso.php';
require '../configuacoes.php';
//Declarando null pro resultado do record, caso o usuário clique em pesquisar, ela será preenchida.
$resultmeta = null;

// Consulta SQL PERFIL
$sql_perfil = "SELECT pr.id_perfil, pr.perfil FROM perfil pr";

// Executando a consulta
$result_perfil = $connectionmysql->query($sql_perfil);

// Verificando se a consulta foi bem-sucedida
if ($result_perfil) {
    // Inicializando um array para armazenar os resultados
    $perfilArray = array();

    // Fetching os resultados e armazenando no array
    while ($row3 = $result_perfil->fetch_assoc()) {
        $perfilArray[] = $row3;
    }
} else {
    // Lidando com erros na execução da consulta
    echo "Erro na execução da consulta: " . $connectionmysql->error;
}

//VERIFICANDO SE O USUÁRIO CLICOU NO BOTÃO PESQUISAR
if (isset($_GET['form_submitted']) && $_GET['form_submitted'] == '1') {

    $records_per_page = 10;
    $current_page = $_GET['page'] ?? 1;
    $start_from = ($current_page - 1) * $records_per_page;
    $hasResults = false;


    $_SESSION['filtros'] = $_GET;
    if (isset($_SESSION['filtros'])) {
        $filtros_recuperados = $_SESSION['filtros'];
        $nome = $filtros_recuperados['nome'] ?? null;
        $nome_fantasia_razao = $filtros_recuperados['nome_fantasia_razao'] ?? null;
        $cpf = $filtros_recuperados['cpf'] ?? null;
        $cnpj = $filtros_recuperados['cnpj'] ?? null;
        $situacao = $filtros_recuperados['situacao'] ?? null;
        $tipopessoa = $filtros_recuperados['tipopessoa'] ?? null;
    }

    // Obtendo os parâmetros
    $nome = $_GET['nome'] ?? null;
    $nome_fantasia_razao = $_GET['nome_fantasia_razao'] ?? null;
    $cpf = $_GET['cpf'] ?? null;
    $cnpj = $_GET['cnpj'] ?? null;
    $situacao = $_GET['situacao'] ?? null;

    $tipopessoa = $_GET['tipopessoa'] ?? null;
    $perfil_selecionado = $_GET['perfil'] ?? null;
    // Removendo quaisquer caracteres que não sejam numéricos do CPF
    $cpfNumerio = preg_replace('/\D/', '', $cpf);

    // Removendo quaisquer caracteres que não sejam numéricos do CNPJ
    $cnpj = preg_replace('/\D/', '', $cnpj);


    // Iniciando a construção do SQL BASE
    $sql_base = "SELECT p.id_pessoa,p.cpf,p.cnpj,p.nome,p.nome_razao,p.nome_fantasia,p.sexo,p.data_nascimento,p.tipo_pessoa,
p.situacao,u.id_usuario,u.id_pessoa as id_pessoa_usuario,u.usuario,u.login,u.senha,up.id_perfil,
up.id_usuario as id_usuario_perfil , pr.id_perfil as id_perfil2 , pr.perfil
from pessoa p left join usuario u on p.id_pessoa = u.id_pessoa
left join perfil_usuario up on  u.id_usuario = up.id_usuario
left join perfil pr on up.id_perfil = pr.id_perfil
 WHERE 1=1";

    // Adicionando condições conforme os parâmetros
    if (isset($nome) && trim($nome) !== "") {
        $nome = strtoupper($nome);
        $nome_seguro = $connectionmysql->real_escape_string($nome);
        $sql_base .= " AND UPPER(p.nome) LIKE '%$nome_seguro%'";
    }

    if (isset($nome_fantasia_razao) && trim($nome_fantasia_razao) !== "") {
        $nome_fantasia_razao = strtoupper($nome_fantasia_razao);
        $nome_seguro = $connectionmysql->real_escape_string($nome_fantasia_razao);
        $sql_base .= " AND UPPER(p.nome_razao) LIKE '%$nome_seguro%'";
    }

    if (isset($nome_fantasia_razao) && trim($nome_fantasia_razao) !== "") {
        $nome_fantasia_razao = strtoupper($nome_fantasia_razao);

        // Escapar a entrada do usuário para evitar injeção SQL
        $nome_seguro = $connectionmysql->real_escape_string($nome_fantasia_razao);

        // Adicionar os caracteres de porcentagem para a busca com LIKE e concatenar com a consulta SQL
        $sql_base .= " AND (UPPER(p.nome_razao) LIKE '%" . $nome_seguro . "%' OR UPPER(p.nome_fantasia) LIKE '%" . $nome_seguro . "%')";
    }


    // Se o CPF estiver preenchido, adicione-o à consulta SQL
    if (isset($cpf) && trim($cpf) !== "") {
        $escaped_cpf = $connectionmysql->real_escape_string($cpf);
        $escaped_cpfNumerio = $connectionmysql->real_escape_string($cpfNumerio);
        $sql_base .= " AND (p.cpf = '" . $escaped_cpf . "' OR p.cpf = '" . $escaped_cpfNumerio . "')";
    }

    // Se o CNPJ estiver preenchido, adicione-o à consulta SQL
    if (isset($cnpj) && trim($cnpj) !== "") {

        $escaped_cnpj = $connectionmysql->real_escape_string($cnpj);
        $sql_base .= " AND p.cnpj = '" . $escaped_cnpj . "'";
    }


    if ($tipopessoa === 'f' || $tipopessoa === 'j') {
        $sql_base .= " AND p.tipo_pessoa = '$tipopessoa'";
    }

    if ($situacao === 'A' || $situacao === 'I') {
        $sql_base .= " AND p.situacao = '$situacao'";
    }
    if (isset($perfil_selecionado) && trim($perfil_selecionado) !== "Todos") {
        $sql_base .= " AND pr.id_perfil = '$perfil_selecionado'";
    }

    $sql_base . " ORDER BY p.tipo_pessoa,nome ";
    $resultmeta = $connectionmysql->query($sql_base);
    // 1. Contagem de registros totais
    // $sql_count = "SELECT COUNT(*) AS total FROM (" . $sql_base . ") AS subquery";
    // $result_count = $connectionmysql->query($sql_count);
    // $total_records = 0;
    // if ($result_count) {
    //     $total_records = $result_count->fetch_assoc()['total'];
    //     $total_pages = ceil($total_records / $records_per_page);  // Determina o número total de páginas

    //     // 2. Construindo a consulta final com LIMIT para paginação

    //     $sql_final = $sql_base . " ORDER BY p.tipo_pessoa,nome LIMIT $start_from, $records_per_page";

    //     $resultmeta = $connectionmysql->query($sql_final);
    // } else {
    //     die('Erro na contagem de registros: ' . $connectionmysql->error);
    // }

    //echo $total_records;
    //echo $sql_final;

}
?>

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

<head>
    <link rel="stylesheet" href="modalexcluir.css">
</head>
<?php
$pageTitle = "Usuários"; // 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 Usuários</h4>
                    </div>

                    <div class="col-6 text-right">

                        <a href="formulario_inclusao_alteracao_pessoa.php?id=0" class="btn btn-light" alt="Incluir Cadastro" title="Incluir Cadastro"><i class="mdi mdi-plus"></i> Adicionar</a>


                    </div>

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

                    <div class="col-12">
                        <form method="get" action="">
                            <div class="form-row mb-3">
                                <!-- 
                                <div class="form-group col-md-3">
                                    <label for="tipopessoa" class="col-form-label">Tipo Pessoa</label>
                                    <select id="tipopessoa" name="tipopessoa" class="form-control">
                                        <option value="Todos" <?php echo (!isset($tipopessoa) || $tipopessoa == "Todos") ? "selected" : ""; ?>>Todos</option>
                                        <option value="f" <?php echo (isset($tipopessoa) && $tipopessoa == "f") ? "selected" : ""; ?>>Física</option>
                                        <option value="j" <?php echo (isset($tipopessoa) && $tipopessoa == "j") ? "selected" : ""; ?>>Jurídica</option>
                                    </select>
                                </div> -->

                                <div class="form-group col-md-3">
                                    <label for="nome" class="col-form-label">Nome</label>
                                    <input type="text" class="form-control" id="nome" name="nome" placeholder="Nome" value="<?php echo isset($nome) ? htmlspecialchars($nome) : ''; ?>">

                                </div>

                                <div class="form-group col-md-3 pessoa-fisica">
                                    <label for="cpf" class="col-form-label">Cpf</label>
                                    <p><input type="text" name="cpf" id="cpf" class="form-control" placeholder="Informe o cpf" value="<?php echo isset($cpf) ? htmlspecialchars($cpf) : ''; ?>"></p>
                                </div>
                                <!-- 
                                <div class="form-group col-md-3 pessoa-juridica">
                                    <label for="cnpj" class="col-form-label">Cnpj</label>

                                    <p> <input type="text" name="cnpj" id="cnpj" class="form-control" placeholder="Informe o cnpj" value=""></p>
                                </div> 


                                <div class="form-group col-md-3 pessoa-juridica">
                                    <label for="nome_fantasia_razao" class="col-form-label">Nome Fantasia/Razão Social</label>
                                    <p> <input type="text" name="nome_fantasia_razao" id="nome_fantasia_razao" class="form-control" placeholder="Informe o nome Fantasia ou Razão Social" value=""></p>
                                </div>-->


                                <div class="form-group col-md-3">
                                    <label for="situacao" class="col-form-label">Situação</label>
                                    <select id="situacao" name="situacao" class="form-control">
                                        <option value="Todos" <?php echo (!isset($situacao) || $situacao == "Todos") ? "selected" : ""; ?>>Todos</option>
                                        <option value="A" <?php echo (isset($situacao) && $situacao == "A") ? "selected" : ""; ?>>Ativo</option>
                                        <option value="I" <?php echo (isset($situacao) && $situacao == "I") ? "selected" : ""; ?>>Inativo</option>
                                    </select>
                                </div>
                                <div class="form-group col-md-3">
                                    <label for="tipopessoa" class="col-form-label">Perfil</label>
                                    <select id="perfil" name="perfil" class="form-control">
                                        <option value="Todos" <?php echo (!isset($perfil_selecionado) || $perfil_selecionado == "Todos") ? "selected" : ""; ?>>Todos</option>
                                        <?php foreach ($perfilArray as $perfil) : ?>
                                            <option value="<?php echo $perfil['id_perfil']; ?>" <?php echo (isset($perfil_selecionado) && $perfil_selecionado == $perfil['id_perfil']) ? "selected" : ""; ?>>
                                                <?php echo $perfil['perfil']; ?>
                                            </option>
                                        <?php endforeach; ?>
                                    </select>
                                </div>
                                <!--CAMPO PARA INDICAR QUE CLICAMOS NO PESQUISAR -->
                                <input type="hidden" name="form_submitted" value="1" />

                                <div class="col-12 text-right">
                                    <a href="index.php" class="btn btn-warning mr-2"><i class="mdi mdi-plus"></i> Limpar</a>
                                    <button type="submit" class="btn btn-primary"><i class="mdi mdi-magnify"></i> Pesquisar</button>
                                </div>
                            </div>
                        </form>
                    </div>
                </div>
                <?php
                //VERIFICANDO SE O USUÁRIO CLICOU NO BOTÃO PESQUISAR
                if (isset($_GET['form_submitted']) && $_GET['form_submitted'] == '1') { ?>

                    <div class="col-12">
                        <div style="display: flex; justify-content: space-between; align-items: center;">
                            <h6>Lista de Pessoas</h6>
                            <!-- <div>
                                <span>Total de registros: <?php echo $total_records; ?></span>
                            </div> -->
                        </div>

                        <table id="datatable-buttons" class="table table-striped table-bordered dt-responsive nowrap">
                            <thead>
                                <tr class="text-center">
                                    <!-- <th>Tipo</th> -->
                                    <th>Nome</th>
                                    <th>Cpf</th>
                                    <!-- <th>Nome Fantasia</th> -->
                                    <th>Perfil</th>
                                    <th>Situação</th>
                                    <th>Login</th>
                                    <th>Ações</th>
                                </tr>
                            </thead>
                            <tbody>
                                <?php
                                $hasResults = false;  // Inicializa como false

                                if ($resultmeta) {  // Verifica se $resultmeta é válido
                                    while ($row = $resultmeta->fetch_assoc()) {  // Usa $row em vez de $rowMeta para consistência
                                        $hasResults = true;  // Indica que encontrou ao menos um resultado
                                        $id_pessoa = $row['id_pessoa'];
                                        $id_usuario = $row['id_usuario'];
                                ?>
                                        <tr class="text-center">
                                            <!-- <td>
                                                <?php
                                                if ($row['tipo_pessoa'] == 'f') {
                                                    echo 'Física';
                                                } elseif ($row['tipo_pessoa'] == 'j') {
                                                    echo 'Jurídica';
                                                }
                                                ?>
                                            </td> -->
                                            <td class="col-3"><?php echo htmlspecialchars($row['nome']); ?></td>
                                            <td><?php echo htmlspecialchars($row['cpf']); ?></td>
                                            <!-- <td><?php echo htmlspecialchars($row['nome_fantasia']); ?></td>-->
                                            <td><?php echo htmlspecialchars($row['perfil']); ?></td> 
                                            <td>
                                                <?php
                                                if ($row['situacao'] == 'A') {
                                                    echo 'Ativo';
                                                } elseif ($row['situacao'] == 'I') {
                                                    echo 'Inativo';
                                                }
                                                ?>
                                            </td>
                                            <td><?php echo htmlspecialchars($row['login']); ?></td>
                                            <td class="col-2">
                                                <div class="table-actions">
                                                    <a href="formulario_inclusao_alteracao_pessoa.php?id=1&id_pessoa=<?php echo $id_pessoa; ?>" class="table-actions link-view" title="Alterar Pessoa"><i class="mdi mdi mdi-content-save-edit"></i></a>

                                                    <a href="detalhar_pessoa.php?&id_pessoa=<?php echo $id_pessoa; ?>" class="table-actions link-view"><i class="mdi mdi mdi-account-search"></i></a>

                                                    <button data-id-pessoa="<?php echo $id_pessoa; ?>" data-id-usuario="<?php echo $id_usuario; ?>" class="table-actions link-view excluir-btn" title="Excluir Pessoa">
                                                        <i class="mdi mdi mdi mdi-delete-forever"></i>
                                                    </button>
                                                    <div id="toggleButton-<?php echo $id_pessoa; ?>" class="toggle-button <?php echo $row['situacao'] == 'A' ? 'active' : ''; ?>" onclick="toggleStatus(<?php echo $id_pessoa; ?>)">
                                                        <div class="toggle-knob"></div>
                                                    </div>
                                                </div>
                                            </td>
                                        </tr>
                                <?php
                                    }
                                }

                                if (!$hasResults) {
                                    echo "<tr><td colspan='5' class='text-center'>Sem resultado para a consulta</td></tr>";
                                }
                                ?>
                            </tbody>
                        </table>
                    </div>
            </div>
            <!-- <div style="display: flex; justify-content: center;">
                <?php include('paginacao.php'); ?>
            </div> -->
        <?php } //fechamento do IF que valida se o usuário clicou no botão pesquisar 
        ?>
        </div>
    </div>

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

    <!-- Código do modal -->
    <div id="myModal" class="modal">
        <div class="modal-content">
            <span class="close" onclick="closeModal()">&times;</span>
            <h2>Deseja realmente excluir o Usuário selecionado?</h2>

            <!-- Formulário de confirmação -->
            <form id="formExclusao" method="post" action="excluir_pessoa.php">
                <input type="hidden" id="id_pessoa" name="id_pessoa" value="">
                <input type="hidden" id="id_usuario" name="id_usuario" value="">

                <label for="confirmacao_sim">
                    <input type="radio" id="confirmacao_sim" name="confirmacao" value="sim"> Sim
                </label>

                <label for="confirmacao_nao">
                    <input type="radio" id="confirmacao_nao" name="confirmacao" value="nao"> Não
                </label>

                <br>

                <!-- Adicione a classe confirmar-btn ao botão de Confirmar -->
                <button type="button" class="confirmar-btn" onclick="confirmarExclusao()">Confirmar</button>
            </form>
        </div>
    </div>
    <!-- FINAL MODAL DE EXCLUIR -->

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

    <!-- Mask para cpf,cnpj -->
    <script src="https://cdnjs.cloudflare.com/ajax/libs/jquery.mask/1.14.15/jquery.mask.min.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>
        $(document).ready(function() {
            var table = $('#datatable-buttons').DataTable({
                "language": {
                    "url": "//cdn.datatables.net/plug-ins/1.10.21/i18n/Portuguese-Brasil.json"
                },
                "ordering": true,
                "responsive": true,
                "autoWidth": false,
                "lengthMenu": [
                    [10, 25, 50, 100, -1],
                    [10, 25, 50, 100, "Todos"]
                ],
                "dom": 'Bfrtip'
            });

            // Adicione os eventos após a inicialização do DataTables
            $('#datatable-buttons tbody').on('click', 'button.excluir-btn', function() {
                var id_pessoa = $(this).data('id-pessoa');
                var id_usuario = $(this).data('id-usuario');
                openModal(id_pessoa, id_usuario);
            });

            $('#datatable-buttons tbody').on('click', 'div.toggle-button', function() {
                var id_pessoa = $(this).data('id-pessoa');
                toggleStatus(id_pessoa);
            });

            setTimeout(function() {
                $("#datatable-buttons_filter").children("label").css("font-size", "15px");
            }, 150);

            setTimeout(function() {
                $("#datatable-buttons_length").children("label").css("font-size", "15px");
            }, 150);
        });
    </script>
    <script>
        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);
        });

        // Função para formatar o CPF
        $("#cpf").mask("000.000.000-00", {
            onKeyPress: function(cpf, e, field, options) {
                const masks = ["000.000.000-00"];
                let mask = null;
                if (cpf.length < 14) {
                    mask = masks[0];
                }
                $("#cpf").mask(mask, options);
            }
        });

        // Função para abrir o modal e definir os valores dos campos ocultos
        function openModal(idPessoa, idUsuario) {
            document.getElementById('id_pessoa').value = idPessoa;
            document.getElementById('id_usuario').value = idUsuario;
            document.getElementById('myModal').style.display = 'block';
        }

        // Função para fechar o modal
        function closeModal() {
            document.getElementById('myModal').style.display = 'none';
        }

        // Função para confirmar a exclusão e enviar o formulário
        function confirmarExclusao() {
            // Aqui você pode adicionar lógica para confirmar a exclusão
            // Por exemplo, enviar o formulário
            document.getElementById('formExclusao').submit();
            closeModal();
        }

        function toggleStatus(id_pessoa) {
            const toggleButton = document.getElementById('toggleButton-' + id_pessoa);
            toggleButton.classList.toggle('active');

            const newStatus = toggleButton.classList.contains('active') ? 'A' : 'I';

            // Chama o PHP para atualizar o status no banco de dados
            fetch('status_pessoa.php', {
                    method: 'POST',
                    headers: {
                        'Content-Type': 'application/json'
                    },
                    body: JSON.stringify({
                        id_pessoa: id_pessoa,
                        status: newStatus
                    })
                })
                .then(response => response.json())
                .then(data => {
                    console.log(data);
                })
                .catch(error => {
                    console.error('Error:', error);
                });
        }
    </script>
    <style>
        .table-actions {
            display: flex;
            align-items: center;
            justify-content: space-evenly;
        }

        .toggle-button {
            margin-right: 10px;
        }

        .toggle-button {
            width: 30px;
            height: 16px;
            background-color: grey;
            border-radius: 15px;
            position: relative;
            cursor: pointer;
            transition: background-color 0.3s;
        }

        .toggle-button.active {
            background-color: #d5a800;
        }

        .toggle-knob {
            width: 14px;
            height: 14px;
            background-color: white;
            border-radius: 50%;
            position: absolute;
            top: 1px;
            left: 1px;
            transition: left 0.3s;
        }

        .toggle-button.active .toggle-knob {
            left: 14px;
        }
    </style>

</body>

</html>