<?php
require '../conexao/conexao.php';
//require '../sessao.php';
require '../conexao/acesso.php';
require '../configuacoes.php';
// require '../logs/gera-log.php';

// if (isset($_GET['status']) && $_GET['status'] === 'sucesso' && isset($_GET['acao']) && $_GET['acao'] === 'criar') {
//     gerarLog(
//         2, // tipo de log (atualização)
//         $basePath, // id do módulo
//         $_SESSION['CodUsuario'],
//         $_SESSION['NomeUsuario']
//     );
// }

// if (isset($_GET['status']) && $_GET['status'] === 'sucesso' && isset($_GET['acao']) && $_GET['acao'] === 'atualizar') {
//     gerarLog(
//         3, // tipo de log (atualização)
//         $basePath, // id do módulo
//         $_SESSION['CodUsuario'],
//         $_SESSION['NomeUsuario']
//     );
// }

// if (isset($_GET['status']) && $_GET['status'] === 'sucesso' && isset($_GET['acao']) && $_GET['acao'] === 'excluir') {
//     gerarLog(
//         4, // tipo de log (exclusão)
//         $basePath, // id do módulo
//         $_SESSION['CodUsuario'],
//         $_SESSION['NomeUsuario']
//     );
// }


//Declarando null pro resultado do record, caso o usuário clique em pesquisar, ela será preenchida.
$resultmeta = null;
$sql_erros = "SELECT id_erro, nome_erro, status 
FROM mapa_erros 
WHERE mapa_erros.status = 'S' or mapa_erros.status is null";
$result_erros = $connectionmysql->query($sql_erros);
$errosArray = array();
if ($result_erros) {
    while ($row_erro = $result_erros->fetch_assoc()) {
        $errosArray[] = $row_erro;
    }
} else {
    echo "Erro na execução da consulta: " . $connectionmysql->error;
}
if (!empty($_GET['id']) && $_GET['id'] == '1') {
    $query_string = http_build_query([
        'codigo_fcerta' => $_GET['codigo_fcerta'] ?? null,
        'filial' => $_GET['filial'] ?? null,
        'departamento' => $_GET['departamento'] ?? null,
        'setor' => $_GET['setor'] ?? null,
        'nome' => $_GET['nome'] ?? null,
        'form_submitted' => isset($_GET['form_submitted']) ? $_GET['form_submitted'] : null,
    ]);
}
if (!empty($_GET['id']) && $_GET['id'] == '2') {
    $query_string = http_build_query([
        'codidentificador' => $_GET['codidentificador'] ?? null,
        'considerar_filial' => $_GET['considerar_filial'] ?? null,
        'codigo_fcerta' => $_GET['codigo_fcerta'] ?? null,
        'filial' => $_GET['filial'] ?? null,
        'departamento' => $_GET['departamento'] ?? null,
        'setor' => $_GET['setor'] ?? null,
        'nome' => $_GET['nome'] ?? null,
        'DataInicial' => $_GET['DataInicial'] ?? null,
        'DataFinal' => $_GET['DataFinal'] ?? null,
        'etapa' => $_GET['etapa'] ?? null,
        'form_submitted' => isset($_GET['form_submitted']) ? $_GET['form_submitted'] : null,
    ]);
}
if (!empty($_GET['id']) && $_GET['id'] == '3') {
    $query_string = http_build_query([
        'codidentificador' => $_GET['codidentificador'] ?? null,
        'considerar_filial' => $_GET['considerar_filial'] ?? null,
        'filial' => $_GET['filial'] ?? null,
        'DataInicial' => $_GET['DataInicial'] ?? null,
        'DataFinal' => $_GET['DataFinal'] ?? null,
        'etapa' => $_GET['etapa'] ?? null,
        'operacao' => $_GET['operacao'] ?? null,
        'form_submitted' => isset($_GET['form_submitted']) ? $_GET['form_submitted'] : null,
    ]);
}
if (isset($_GET['pesquisar']) && $_GET['pesquisar'] == '1') {
    $_SESSION['filtros'] = [
        'erro_select' => $_GET['erro_select'] ?? 'Todos',
        'pesquisar' => isset($_GET['pesquisar']) ? $_GET['pesquisar'] : null,
    ];

    $erro_select = $_GET['erro_select'] ?? null;

    // Iniciando a construção do SQL BASE
    $sql_base = "SELECT me.id_erro, me.nome_erro,me.peso FROM mapa_erros me  where me.status = 'S' or me.status is null ";

    if (isset($erro_select) && trim($erro_select) !== "Todos") {
        $sql_base .= " AND me.id_erro = '$erro_select'";
    }

    $sql_base .= " ORDER BY me.nome_erro";


    $resultmeta = $connectionmysql->query($sql_base);


    //echo $total_records;
    //echo $sql_base;
}
?>

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

<head>
    <link rel="stylesheet" href="modalexcluir.css">
</head>
<?php
$pageTitle = "Gestão de Erros"; // 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">Erros do Sistema</h4>
                    </div>

                    <div class="col-6 text-right">
                        <?php
                        if (!empty($_GET['id'])) {
                            if ($_GET['id'] == '1') {
                                $redirect_url = "../lancamento_erros/index.php";
                            } elseif ($_GET['id'] == '2') {
                                $redirect_url = "../mapa_erros/index.php";
                            } elseif ($_GET['id'] == '3') {
                                $redirect_url = "../mapa_erros_etapa/index.php";
                            } ?>
                            <a href="<?= $redirect_url ?>?<?= $query_string ?>" class="btn btn-light">
                                <i class="mdi mdi-keyboard-backspace"></i> Voltar
                            </a>
                            <a href="inclusao_alteracao_erro.php?id=0&id_pag=<?= $_GET['id'] ?>&<?= $query_string ?>" class="btn btn-light" alt="Incluir Erro" title="Incluir Erro">
                                <i class="mdi mdi-plus"></i> Adicionar Erro
                            </a>
                        <?php } else { ?>
                            <a href="../index.php" class="btn btn-light">
                                <i class="mdi mdi-keyboard-backspace"></i> Voltar
                            </a>
                            <a href="inclusao_alteracao_erro.php?id=0" class="btn btn-light" alt="Incluir Erro" title="Incluir Erro">
                                <i class="mdi mdi-plus"></i> Adicionar Erro
                            </a>
                        <?php } ?>
                    </div>


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

                    <div class="col-12">
                        <form method="get" action="<?= htmlspecialchars($_SERVER['PHP_SELF']); ?>">
                            <div class="form-row mb-3">
                                <div class="form-group col-6 col-md-4 col-lg-2">
                                    <label for="tipo" class="col-form-label">Erros</label>
                                    <select id="erro_select" name="erro_select" class="form-control">
                                        <option value="Todos" <?php echo (!isset($erro_select) || $erro_select == "Todos") ? "selected" : ""; ?>>Todos</option>
                                        <?php foreach ($errosArray as $erro) : ?>
                                            <option value="<?php echo $erro['id_erro']; ?>" <?php echo (isset($erro_select) && $erro_select == $erro['id_erro']) ? "selected" : ""; ?>>
                                                <?php echo $erro['nome_erro']; ?>
                                            </option>
                                        <?php endforeach; ?>
                                    </select>
                                </div>
                                <input type="hidden" name="pesquisar" value="1" />
                                <?php if (!empty($_GET['id'])) : ?>
                                    <input type="hidden" name="id" value="<?= htmlspecialchars($_GET['id']); ?>" />
                                    <?php
                                    // Preserva os parâmetros da URL em campos ocultos
                                    parse_str($query_string, $query_params);
                                    foreach ($query_params as $key => $value) {
                                        if ($value !== null) {
                                            echo '<input type="hidden" name="' . htmlspecialchars($key) . '" value="' . htmlspecialchars($value) . '" />';
                                        }
                                    }
                                    ?>
                                <?php endif; ?>

                                <div class="col-6 col-md-4 col-lg-10 mt-4 text-right">
                                    <?php if (!empty($_GET['id'])) { ?>
                                        <a href="index.php?<?= isset($query_string) ? $query_string : '' ?>&id=<?= isset($_GET['id']) ? $_GET['id'] : '' ?>" class="btn btn-warning mr-2"><i class="mdi mdi-plus"></i> Limpar</a>
                                    <?php } else { ?>
                                        <a href="index.php" class="btn btn-warning mr-2"><i class="mdi mdi-plus"></i> Limpar</a>
                                    <?php } ?>
                                    <button type="submit" class="btn btn-primary"><i class="mdi mdi-magnify"></i> Pesquisar</button>
                                </div>
                        </form>
                    </div>
                </div>
                <?php
                //VERIFICANDO SE O USUÁRIO CLICOU NO BOTÃO PESQUISAR
                if (isset($_GET['pesquisar']) && $_GET['pesquisar'] == '1') { ?>

                    <div class="col-12">
                        <div style="display: flex; justify-content: space-between; align-items: center;">
                            <h6>Lista de Erros </h6>
                        </div>

                        <table id="datatable-buttons" class="table table-striped table-bordered dt-responsive nowrap">
                            <thead>
                                <tr class="text-center">
                                    <th>Erro</th>
                                    <th>Peso</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_erro = $row['id_erro'];
                                ?>
                                        <tr class="text-center">
                                            <td class="col-6"><?php echo htmlspecialchars($row['nome_erro']); ?></td>
                                            <td class="col-4"><?php echo htmlspecialchars(number_format($row['peso'], 2)); ?></td>
                                            <td class="col-2">
                                                <a href="inclusao_alteracao_erro.php?id=1&id_erro=<?php echo $id_erro; ?><?php echo isset($_GET['id']) ? '&id_pag=' . $_GET['id'] : ''; ?><?php echo isset($query_string) ? '&' . $query_string : ''; ?>" class="table-actions link-view" title="Alterar Erro"><i class="mdi mdi mdi-content-save-edit"></i></a>
                                                <button 
                                                    data-id-erro="<?php echo $id_erro; ?>" 
                                                    data-id-pagina="<?php echo isset($_GET['id']) ? $_GET['id'] : ''; ?>" 
                                                    data-url="<?php echo isset($query_string) ? $query_string : ''; ?>" 
                                                    class="table-actions link-view excluir-btn" 
                                                    title="Excluir erro">
                                                    <i class="mdi mdi-delete-forever"></i>
                                                </button>
                                            </td>

                                        </tr>
                                <?php
                                    }
                                }

                                if (!$hasResults) {
                                    echo "<tr><td colspan='2' 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 erro selecionado?</h2>
            <form id="formExclusao" method="post" action="excluir_erro.php">
                <input type="hidden" id="id_erro" name="id_erro" value="">
                <input type="hidden" id="id_pagina" name="id_pagina" value="">
                <input type="hidden" id="url" name="url" 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>
                <button type="button" class="confirmar-btn" onclick="confirmarExclusao()">Confirmar</button>
            </form>
        </div>
    </div> -->

    <form id="formExclusaoErro" action="excluir_erro.php" method="post" style="display: none;">
        <input type="hidden" id="del-id-erro" name="id_erro">
        <input type="hidden" id="del-id-pagina" name="id_pagina">
        <input type="hidden" id="del-url" name="url">
        <input type="hidden" name="confirmacao" value="sim">
    </form>


    <!-- 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>
    <!-- Inclua isso no cabeçalho para garantir que as bibliotecas sejam carregadas -->
    <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">
    
    <!-- Incluindo o ModalHelper -->
    <script src="/kpi/assets/js/modais.js"></script>
    <script src="../../assets/js/modal-helper.js"></script>

    <!-- Seu script para inicializar o DataTables -->
    <script>
        $(document).ready(function() {
            var table = $('#datatable-buttons').DataTable({
                "language": {
                    "url": "https://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: '<"thead-left"B><"thead-right"f>t<"datatable-footer d-flex justify-content-between align-items-center mt-2 w-100"<"footer-left"l><"footer-center"i><"footer-right"p>>',
            });
            setTimeout(function() {
                $("#datatable-buttons_filter").children("label").css("font-size", "15px");
            }, 30);
            setTimeout(function() {
                $("#datatable-buttons_length").children("label").css("font-size", "15px");
            }, 30);
            
            $(document).on('click', '.excluir-btn', function(e) {
                e.preventDefault();

                // Captura os dados do botão clicado
                var btn = $(this);
                var idErro = btn.data('id-erro');
                var idPagina = btn.data('id-pagina');
                var url = btn.data('url');

                ModalHelper.openConfirmationModal({
                    title: 'Confirmar Exclusão',
                    message: 'Tem certeza que deseja excluir o erro? Esta ação não pode ser desfeita.',
                    confirmText: 'Sim, excluir',
                    cancelText: 'Cancelar',
                    onConfirm: () => {
                        // Preenche o formulário oculto
                        $('#del-id-erro').val(idErro);
                        $('#del-id-pagina').val(idPagina);
                        $('#del-url').val(url);

                        // Feedback e Envio
                        ModalHelper.showToast('Excluindo erro...', '#3b82f6');
                        document.getElementById('formExclusaoErro').submit();
                    },
                    onCancel: () => {
                        ModalHelper.showToast('Exclusão cancelada', '#f97316');
                    }
                });
            });
        });
    </script>
    <style>
        #datatable-buttons_length label,
        #datatable-buttons_info {
            margin: 0 !important;
            padding: 0 !important;
            align-items: center;
        }
    </style>
    <script>
        // Função para abrir o modal e definir os valores dos campos ocultos
        function openModal(idErro, id, url) {
            document.getElementById('id_erro').value = idErro;
            document.getElementById('id_pagina').value = id;
            document.getElementById('url').value = url;
            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() {
            document.getElementById('formExclusao').submit();
            closeModal();
        }

        // Adicionando o evento ao botão de exclusão
        document.addEventListener("DOMContentLoaded", function() {
            const excluirBtns = document.querySelectorAll('.excluir-btn');
            excluirBtns.forEach(btn => {
                btn.addEventListener('click', function() {
                    const idErro = this.getAttribute('data-id-erro');
                    const idPag = this.getAttribute('data-id-pagina');
                    const url = this.getAttribute('data-url');
                    openModal(idErro, idPag, url);
                });
            });

            const url = new URL(window.location);
            url.searchParams.delete('status');
            url.searchParams.delete('message');
            window.history.replaceState({}, document.title, url);
        });

        function goBack() {
            window.history.back();
        }
    </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);
        });

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

</body>

</html>