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

// Instancia a classe de consulta_bb ao banco de dados
$consulta_bb = new ConsultaBancoDeDados();
//Declarando null pro resultado do record, caso o usuário clique em pesquisar, ela será preenchida.
$resultmeta = null;

$idPessoa = $_GET['id_funcionario'];
$DataInicial = $_GET['DataInicial'];
$DataFinal = $_GET['DataFinal'];
$etapa_erro = $_GET['etapa'];
$codidentificador = $_GET['codidentificador'] ?? null;
if (!empty($codidentificador)) {
    $funcionario = explode(' - ', $codidentificador)[0];
    $nome_funcionario = explode(' - ', $codidentificador)[1];
} else {
    $funcionario = null;
}
$query_string = http_build_query([
    'codidentificador' => $codidentificador,
    '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,
    'operacao' => $_GET['operacao'] ?? null,
    'etapa' => $_GET['etapa'] ?? null,
    'form_submitted' => isset($_GET['form_submitted']) ? $_GET['form_submitted'] : null,
]);

$link_voltar = "index.php?" . $query_string;
$etapas = $consulta_bb->get_etapaFirebird();
$etapasCod = [];
foreach ($etapas as $row) {
    $etapasCod[$row['CODIGO_ETAPA']] = $row['NOME_ETAPA'];
}

// Iniciando a construção do SQL BASE
$sql_base = "SELECT f.id_funcionario, f.nome, e.nome_erro, ml.obs_erro,ml.codigo_etapa, ml.data_lancamento,ml.id_lancamento,ml.identificador,e.peso,ep.nome_etapa
FROM funcionarios as f
LEFT JOIN mapa_erros_lancados as ml ON f.id_funcionario = ml.id_funcionario
LEFT JOIN etapas_pcp as ep ON ep.codigo_etapa = ml.codigo_etapa
INNER JOIN mapa_erros as e ON ml.id_erro = e.id_erro
WHERE f.id_funcionario = $idPessoa";

// Adicionando condição para cod_etapa se estiver definida
if (!empty($etapa_erro) && trim($etapa_erro) !== "Todos") {
    $etapa_erro = $connectionmysql->real_escape_string($etapa_erro);  // Escapando a entrada
    $sql_base .= " AND ml.codigo_etapa = '$etapa_erro'";
}
if (isset($funcionario) && trim($funcionario) !== "") {
    $sql_base .= " AND ml.identificador = $funcionario";
}
if ($DataInicial) {
    $DataInicial = $connectionmysql->real_escape_string($DataInicial);
    $sql_base .= " AND (ml.data_lancamento IS NULL OR DATE(ml.data_lancamento) >= '$DataInicial')";
}

if ($DataFinal) {
    $DataFinal = $connectionmysql->real_escape_string($DataFinal);
    $sql_base .= " AND (ml.data_lancamento IS NULL OR DATE(ml.data_lancamento) <= '$DataFinal')";
}


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

//echo $total_records;
//echo $sql_base;

$sql_fun = "SELECT * FROM funcionarios as f ";
$result = $connectionmysql->query($sql_fun);
if ($result) {
    $funcionarios = array();
    while ($row = $result->fetch_assoc()) {
        $funcionarios[$row['cod_fcerta']] = $row;
    }
}
?>

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

<head>
    <link rel="stylesheet" href="modalexcluir.css">
</head>
<?php
$pageTitle = "Mapa 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">Detalhamento de Erros</h4>
                    </div>
                    <div class="col-6 text-right">
                        <a href="<?php echo $link_voltar; ?>" class="btn btn-light">
                            <i class="mdi mdi-keyboard-backspace"></i> Voltar
                        </a>
                        <a href="lancar_erro.php?id=1&id_funcionario=<?php echo $idPessoa; ?>&<?php echo $query_string; ?>" class="btn btn-light" alt="Marcar Erro" title="Marcar Erro"><i class="mdi mdi-plus"></i> Marcar Erro</a>
                    </div>

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

                    <div class="col-12">

                    </div>
                </div>
                <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 class="text-center">Nome</th>
                                <th class="text-center">Erro</th>
                                <th class="text-center">Etapa</th>
                                <th class="text-center">Observação</th>
                                <th class="text-center">Peso</th>
                                <th class="text-center">Data</th>
                                <th class="text-center">Identificador</th>
                                <th class="text-center">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_lancamento = $row['id_lancamento'];
                                    $id_funcionario = $row['id_funcionario'];
                                    $data_lancamento = $row['data_lancamento'];
                                    $dateTime = new DateTime($data_lancamento);
                                    $formattedDate = $dateTime->format('Y/m/d H:i');
                            ?>
                                    <tr class="text-center">
                                        <td><?php echo htmlspecialchars($row['nome']); ?></td>
                                        <td><?php echo htmlspecialchars($row['nome_erro']); ?></td>
                                        <td><?php echo htmlspecialchars(isset($etapasCod[$row['codigo_etapa']]) ? $etapasCod[$row['codigo_etapa']] : "N/A"); ?></td>
                                        <td style="max-width: 400px;word-wrap: break-word; word-break: break-all;  overflow: hidden; text-overflow: ellipsis; white-space: normal;"><?php echo htmlspecialchars($row['obs_erro']); ?></td>
                                        <td style="max-width: 400px;word-wrap: break-word; word-break: break-all;  overflow: hidden; text-overflow: ellipsis; white-space: normal;"><?php echo htmlspecialchars($row['peso']); ?></td>
                                        <td><?php echo $formattedDate; ?></td>
                                        <td><?php echo isset($funcionarios[$row['identificador']]['nome']) ? htmlspecialchars($funcionarios[$row['identificador']]['nome']) : 'N/A'; ?></td>
                                        <td class="col-2">
                                            <a href="lancar_erro.php?id=2&id_lancamento=<?php echo $id_lancamento; ?>&<?php echo $query_string; ?>" class="table-actions link-view" title="Alterar Erro do Funcionario"><i class="mdi mdi mdi-content-save-edit"></i></a>

                                            <button data-id-erro="<?php echo $id_lancamento; ?>"
                                                url="<?php echo $query_string; ?>"
                                                id-funcionario="<?php echo $id_funcionario; ?>"
                                                class="table-actions link-view excluir-btn" title="Excluir Lançamento de erro" onclick="openModal('<?php echo $id_lancamento; ?>', '<?php echo $query_string; ?>','<?php echo $id_funcionario; ?>')">
                                                <i class="mdi mdi-delete-forever"></i>
                                            </button>
                                        </td>
                                    </tr>
                            <?php
                                }
                            }

                            if (!$hasResults) {
                                echo "<tr><td colspan='7' 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> -->

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

            <!-- Formulário de confirmação -->
            <form id="formExclusao" method="post" action="excluir_erro.php">
                <input type="hidden" id="id_lancamento" name="id_lancamento" value="">
                <input type="hidden" id="url" name="url" value="">
                <input type="hidden" id="id_fun" name="id_fun" 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>
    <!-- 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">

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

    <!-- 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"]
                ],
                "buttons": [
                    'excelHtml5',
                    //'csvHtml5',
                    //'pdfHtml5'
                ],
                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>>',
            });

            setTimeout(function() {
                $("#datatable-buttons_filter").children("label").css("font-size", "15px");
            }, 50);
            setTimeout(function() {
                $("#datatable-buttons_length").children("label").css("font-size", "15px");
            }, 50);
        });
    </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(id_lancamentoo, url, id_fun) {
            document.getElementById('id_lancamento').value = id_lancamentoo;
            document.getElementById('url').value = url;
            document.getElementById('id_fun').value = id_fun;
            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();
        }
    </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);
        });
    </script>
</body>

</html>