<?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';
require '../logs/gera-log.php';

// Instancia a classe de consulta_bb ao banco de dados
$consulta_bb = new ConsultaBancoDeDados();
$filtros = new Filtros();
$resultmeta = null;
$filiais = $consulta_bb->get_filiais();
$funcionarios = $consulta_bb->get_funcionarios_mandareceita();

$nomesColaboradores = [];
foreach ($funcionarios as $funcionarioFiltro) {
    $nomeColaborador = trim($funcionarioFiltro['NOME'] ?? '');
    if ($nomeColaborador !== '') {
        $nomesColaboradores[$nomeColaborador] = $nomeColaborador;
    }
}

natcasesort($nomesColaboradores);


// Consulta SQL DEPARTAMENTO
$sql_departamento =
    "SELECT dp.id_departamento,dp.nome_departamento FROM departamentos as dp where situacao <> 'I'";
$result_departamento = $connectionmysql->query($sql_departamento);
if ($result_departamento) {
    $departamentoArray = array();
    while ($row3 = $result_departamento->fetch_assoc()) {
        $departamentoArray[] = $row3;
    }
} else {
    echo "Erro na execução da consulta: " . $connectionmysql->error;
}

// Consulta SQL setor
$sql_setor = "SELECT st.id_setor,st.nome_setor,dp.id_departamento  FROM departamentos dp join setores st on st.id_departamento = dp.id_departamento where situacao <> 'I'";
$result_setor = $connectionmysql->query($sql_setor);
if ($result_setor) {
    $setorArray = array();
    while ($row4 = $result_setor->fetch_assoc()) {
        $setorArray[] = $row4;
    }
} else {
    echo "Erro na execução da consulta: " . $connectionmysql->error;
}

// Obtendo os parâmetros
$codigo_fcerta = $_GET['codigo_fcerta'] ?? null;
$setorSelecionado = $_GET['setor'] ?? null;
$meu_departamento = $_GET['departamento'] ?? null;
$nome = $_GET['nome'] ?? null;
$ids = array_column($filiais, 'ID');
array_unshift($ids, 'x');
$ids_filial = implode(',', $ids);
$filialselect = !empty($_GET['filial']) ? $_GET['filial'] : null;
$filial = explode(',', $filialselect);

$filial = array_filter($filial, function ($item) {
    return $item !== 'x';
});
$filial = array_values($filial);
$filial = implode(',', $filial);

$query_string = http_build_query([
    'codigo_fcerta' => $codigo_fcerta,
    'filial' => $filialselect,
    'departamento' => $meu_departamento,
    'setor' => $setorSelecionado,
    'nome' => $nome,
    'form_submitted' => isset($_GET['form_submitted']) ? $_GET['form_submitted'] : '0',
]);

gerarLog(
    1, // tipo de log (acesso)
    $basePath, // módulo
    $_SESSION['CodUsuario'],
    $_SESSION['NomeUsuario']
);



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

    gerarLog(
        5, // tipo de log (acesso)
        $basePath, // id do módulo
        $_SESSION['CodUsuario'],
        $_SESSION['NomeUsuario']
    );

    $sql_base = "
    SELECT 
        f.id_funcionario,
        f.nome,
        f.cod_fcerta,
        d.nome_departamento,
        s.nome_setor
    FROM funcionarios AS f
    INNER JOIN departamentos AS d ON f.id_departamento = d.id_departamento
    INNER JOIN setores AS s ON f.id_setor = s.id_setor
    WHERE 1 = 1";

    // Adicionando condições conforme os parâmetros
    if (isset($codigo_fcerta) && trim($codigo_fcerta) !== "") {
        $codigo_fcerta = strtoupper($codigo_fcerta);
        $codigo_fcerta = $connectionmysql->real_escape_string($codigo_fcerta);
        $sql_base .= " AND f.cod_fcerta = '$codigo_fcerta'";
    }

    if (isset($meu_departamento) && trim($meu_departamento) !== "Todos") {
        $sql_base .= " AND d.id_departamento = '$meu_departamento'";
    }

    if (isset($setorSelecionado) && trim($setorSelecionado) !== "Todos") {
        $sql_base .= " AND s.id_setor = '$setorSelecionado'";
    }
    // Adicionando condicionalmente a cláusula WHERE para o código da etapa
    if (isset($etapaSelecionado) && trim($etapaSelecionado) !== "Todos") {
        $sql_base .= " AND ml.codigo_etapa = '$etapaSelecionado'";
    }

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

    // Adicionando o GROUP BY
    $sql_base .= " AND f.situacao = 'A' GROUP BY 
        f.id_funcionario,
        f.nome,
        f.cod_fcerta,
        d.nome_departamento,
        s.nome_setor";

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

<!DOCTYPE html>
<html lang="pt-br">
<?php
$pageTitle = "Lançamento 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">Lançamento de Erros</h4>
                    </div>

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

                        <a href="../novos_erros/index.php?id=1&<?= $query_string ?>" class="btn btn-light" alt="Incluir Erro" title="Incluir Erro"><i class="mdi mdi-plus"></i>Gestão de Erros</a>

                    </div>

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

                    <div class="col-12">
                        <form id="indexForm" method="get" action="">
                            <div class="form-row mb-3">
                                <?php
                                // Exibe o filtro de cidade
                                echo $filtros->filtroFilialSimples($filialselect, $filiais);
                                ?>
                                <div class="form-group col-6 col-md-4 col-lg-2">
                                    <label for="departamento" class="col-form-label">Departamento</label>
                                    <select id="departamento" name="departamento" class="form-control">
                                        <option value="Todos" <?php echo (!isset($meu_departamento) || $meu_departamento == "Todos") ? "selected" : ""; ?>>Todos</option>
                                        <?php
                                        foreach ($departamentoArray as $departamento) {
                                            echo '<option value="' . $departamento['id_departamento'] . '"' . (isset($meu_departamento) && $meu_departamento == $departamento['id_departamento'] ? " selected" : "") . '>' . $departamento['nome_departamento'] . '</option>';
                                        }
                                        ?>
                                    </select>
                                </div>

                                <div class="form-group col-6 col-md-4 col-lg-2">
                                    <label for="setor" class="col-form-label">Setor</label>
                                    <select id="setor" name="setor" class="form-control">
                                        <option value="Todos" <?php echo (!isset($setorSelecionado) || $setorSelecionado == "Todos") ? "selected" : ""; ?>>Todos</option>
                                        <?php
                                        foreach ($setorArray as $setor) {
                                            echo '<option value="' . $setor['id_setor'] . '"' . (isset($setorSelecionado) && $setorSelecionado == $setor['id_setor'] ? " selected" : "") . ' data-master="' . $setor['id_departamento'] . '">' . $setor['nome_setor'] . '</option>';
                                        }
                                        ?>
                                    </select>
                                </div>

                                <div class="form-group col-6 col-md-4 col-lg-2">
                                    <label for="codigo_fcerta" class="col-form-label">Código Pharmacie</label>
                                    <input type="number" class="form-control" id="codigo_fcerta" name="codigo_fcerta" placeholder="Informe o Código Pharmacie" value="<?php echo isset($codigo_fcerta) ? htmlspecialchars($codigo_fcerta) : ''; ?>">

                                </div>

                                <div class="form-group col-6 col-md-4 col-lg-2">
                                    <label for="nome" class="col-form-label">Nome Colaborador</label>
                                    <p>
                                        <input type="text" name="nome" id="nome" list="nomes-colaboradores" class="form-control" placeholder="Informe o nome do Colaborador" value="<?php echo isset($nome) ? htmlspecialchars($nome) : ''; ?>">
                                        <datalist id="nomes-colaboradores">
                                            <?php foreach ($nomesColaboradores as $nomeColaborador) { ?>
                                                <option value="<?php echo htmlspecialchars($nomeColaborador); ?>"></option>
                                            <?php } ?>
                                        </datalist>
                                    </p>
                                </div>


                                <!--CAMPO PARA INDICAR QUE CLICAMOS NO PESQUISAR -->
                                <input type="hidden" name="form_submitted" value="1" />

                                <div class="col-12 col-md-4 col-lg-12 d-flex mt-2" style="align-items:center;justify-content: end;">
                                    <div>
                                        <a href="index.php" class="btn btn-warning mr-2"><i class="mdi mdi-plus"></i> Limpar</a>
                                    </div>
                                    <div>
                                        <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 Erro dos Colaboradores </h6>
                        </div>

                        <table id="datatable-buttons" class="table table-striped table-bordered dt-responsive nowrap">
                            <thead>
                                <tr class="text-center">
                                    <th>Nome</th>
                                    <th>Código Pharmacie</th>
                                    <th>Departamento</th>
                                    <th>Setor</th>
                                    <th>Ações</th>
                                </tr>
                            </thead>
                            <tbody>
                                <?php
                                $hasResults = false;  // Inicializa como false

                                if ($resultmeta) {
                                    while ($row = $resultmeta->fetch_assoc()) {
                                        $hasResults = true;
                                        $id_funcionario = $row['id_funcionario'];
                                        $cod_fcerta = $row['cod_fcerta'];
                                ?>
                                        <tr class="text-center">
                                            <td><?php echo htmlspecialchars($row['nome']); ?></td>
                                            <td><?php echo htmlspecialchars($row['cod_fcerta']); ?></td>
                                            <td><?php echo htmlspecialchars($row['nome_departamento']); ?></td>
                                            <td><?php echo htmlspecialchars($row['nome_setor']); ?></td>
                                            <td>
                                                <a href="lancar_erro.php?id=1&id_funcionario=<?php echo $id_funcionario; ?> &<?php echo $query_string; ?>" class="table-actions link-view" title="Marcar Erro"><i class="mdi mdi-pencil"></i></a>
                                            </td>
                                        </tr>
                                <?php
                                    }
                                }
                                if (!$hasResults) {
                                    echo "<tr><td colspan='7' class='text-center'>Sem resultado para a consulta</td></tr>";
                                }
                                ?>
                            </tbody>

                        </table>
                    </div>
            </div>
        <?php }
        ?>
        </div>
    </div>

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

    <!-- ============================================================== -->
    <!-- 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>
    <script src="../../assets/js/funcoes.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">

    <!-- Seu script para inicializar o DataTables -->
    <script>
        applyFilter('departamento', 'setor', 'data-master', '<?php echo isset($setorSelecionado) ? $setorSelecionado : ''; ?>');

        $(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);
        });
    </script>
    <style>
        #datatable-buttons_length label,
        #datatable-buttons_info {
            margin: 0 !important;
            padding: 0 !important;
            align-items: center;
        }
    </style>

    <script type="text/javascript">
        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>

    <style>
        .is-invalido {
            box-shadow: 0 0 5px red !important;
        }
    </style>
</body>

</html>