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

if (isset($_GET['id']) && $_GET['id'] == '0') {
    $pageTitle = "Incluir Novo Erro"; // Definir o título da página aqui
} else {
    $pageTitle = "Alterar Erro";
}

$errosExistentes = array();
$result = $connectionmysql->query("SELECT nome_erro FROM mapa_erros");
if ($result) {
    while ($row = $result->fetch_assoc()) {
        $errosExistentes[] = $row['nome_erro'];
    }
} else {
    echo "Erro ao consultar erros: " . $connectionmysql->error;
}

$errosJson = json_encode($errosExistentes);


//Declarado as variáveis que serão usadas para edição.
$erro = array(
    'id_pessoa' => '0',
    'nomeErro' => '',
);

if (!empty($_GET['id_pag']) && $_GET['id_pag'] == '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,
        'id' => $_GET['id_pag'] ?? null,
        'form_submitted' => '1'
    ]);
}
if (!empty($_GET['id_pag']) && $_GET['id_pag'] == '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,
        'etapaSelecionado' => $_GET['etapa'] ?? null,
        'id' => $_GET['id_pag'] ?? null,
        'form_submitted' => '1'
    ]);
}
if (!empty($_GET['id_pag']) && $_GET['id_pag'] == '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,
        'id' => $_GET['id_pag'] ?? null,
        'form_submitted' => '1'
    ]);
}
//Verificando se é alteração
if (isset($_GET['id']) && $_GET['id'] == '1') {

    $idErro = isset($_GET['id_erro']) ? intval($_GET['id_erro']) : 0;

    if ($idErro > 0) {
        // Preparando a consulta com o uso de placeholders
        $query = "SELECT nome_erro,peso FROM mapa_erros WHERE id_erro = ?";
        $stmt = $connectionmysql->prepare($query);

        if ($stmt) {
            // Vinculando o parâmetro e executando a declaração
            $stmt->bind_param("i", $idErro); // 'i' indica que é um inteiro
            $stmt->execute();

            // Obtendo os resultados
            $result = $stmt->get_result();
            if ($result->num_rows > 0) {
                $erro = $result->fetch_assoc();
            } else {
                echo "Nenhum erro encontrado com o ID especificado.";
            }

            $stmt->close();
        } else {
            echo "Erro ao preparar a declaração: " . $connectionmysql->error;
        }
    } else {
        echo "ID de erro inválido.";
    }
}
?>

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

include('../geral/header.php');
?>

<body>

    <!-- Navigation Bar-->
    <?php
    include('../geral/menu.php');
    ?>
    <!-- End Navigation Bar-->

    <!-- ============================================================== -->
    <!-- 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">
                        <form id="from_inclusao_erro" method="post" action="processa_cadastro_alteracao_erro.php" onsubmit="return validarFormulario();">
                            <div class="form-row mb-3">
                                <div class="form-group col-md-3">
                                    <label for="nomeErro" class="col-form-label">Nome do Erro<span class="text-danger">*</span></label>
                                    <p><input type="text" name="nomeErro" id="nomeErro" class="form-control" placeholder="Informe o nome do erro" value="<?php echo isset($erro['nome_erro']) ? htmlspecialchars($erro['nome_erro']) : ''; ?>" oninput="validarCampo('nomeErro', this.value)"></p>
                                </div>
                                <div class="form-group col-md-3">
                                    <label for="pesoErro" class="col-form-label">Peso do Erro<span class="text-danger">*</span></label>
                                    <p>
                                        <input type="text" name="pesoErro" id="pesoErro" class="form-control" placeholder="Informe o peso do erro" value="<?php echo isset($erro['peso']) ? $erro['peso'] : '1,00'; ?>" oninput="validarPeso(this)" maxlength="10">
                                    </p>
                                </div>

                                <script>
                                    function validarPeso(input) {
                                        // Substituir vírgulas temporariamente por pontos para validação
                                        let valor = input.value.replace(',', '.');

                                        // Remover caracteres inválidos usando regex (apenas números, vírgulas e pontos)
                                        if (!/^[0-9]*[.,]?[0-9]*$/.test(valor)) {
                                            input.value = input.value.slice(0, -1); // Remove o último caractere inválido
                                            return;
                                        }

                                        // Limitar a quantidade de vírgulas ou pontos (apenas um permitido)
                                        let partes = input.value.split(/[.,]/);
                                        if (partes.length > 2) {
                                            input.value = input.value.slice(0, -1); // Remove o último caractere inválido
                                        }
                                    }
                                </script>

                                <input type="hidden" name="id_erro" id="id_erro" value="<?php echo isset($idErro) ? $idErro : '0'; ?>">
                                <input type="hidden" name="id_pag" id="id_pag" value="<?php echo isset($_GET['id_pag']) ? $_GET['id_pag'] : ''; ?>">
                                <input type="hidden" name="url" id="url" value="<?php echo isset($query_string) ? $query_string : ''; ?>">
                                <div class="col-6 mt-4 text-right">
                                    <button type="submit" class="btn btn-primary"><i class="mdi mdi-magnify"></i> Salvar</button>
                                </div>
                        </form>
                    </div>
                </div>
            </div>

        </div>

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


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

    <!-- Init js-->
    <script src="../../assets/js/pages/form-advanced.init.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://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
    <script src="https://cdnjs.cloudflare.com/ajax/libs/jquery.mask/1.14.16/jquery.mask.min.js"></script>
    <script>
        const errosExistentes = <?php echo $errosJson; ?>;

        function showModal(modalId, title, message) {
            const modalElement = document.getElementById(modalId);
            const modal = new bootstrap.Modal(modalElement);
            modalElement.querySelector('.modal-title').textContent = title;
            modalElement.querySelector('.modal-body p').textContent = message;
            modal.show();
        }

        function verificarErroNaURL() {
            const urlParams = new URLSearchParams(window.location.search);
            const errorMessage = urlParams.get('error');
            if (errorMessage) {
                showModal('exampleModal', 'Erro', errorMessage);
            }
        }

        window.onload = verificarErroNaURL;

        function exibirMensagemErro(mensagem, id) {
            let errorDiv;
            var existingError = document.querySelector('#' + id + ' + .error-message');
            if (existingError) {
                existingError.parentNode.removeChild(existingError);
            }
            // Cria uma nova div de erro e a adiciona à div alvo
            errorDiv = document.createElement('div');
            errorDiv.textContent = mensagem;
            errorDiv.classList.add('error-message');
            document.getElementById(id).parentNode.appendChild(errorDiv);
        }


        function removerMensagemErro(id) {
            var existingError = document.querySelector('#' + id + ' + .error-message');
            if (existingError) {
                existingError.parentNode.removeChild(existingError);
            }
        }


        function validarCampo(id) {
            let campo = document.getElementById(id);
            let valor = campo.value.trim();
            let camposValidos = true;

            if (!valor) {
                camposValidos = false;
                campo.classList.add('is-invalid');
                exibirMensagemErro('Por favor, preencha este campo.', id);
            } else {
                campo.classList.remove('is-invalid');
                removerMensagemErro(id);
            }
            return camposValidos;
        }

        function validarFormulario() {
            let nomeErro = validarCampo("nomeErro");
            let pesoErro = validarCampo("pesoErro");
            camposValidos = nomeErro;
            if (get[id] !== 1) {
                if (camposValidos) {
                    let nomeErro = document.getElementById('nomeErro').value.trim();
                    if (errosExistentes.includes(nomeErro)) {
                        showModal('exampleModal', 'Informação', 'Este nome de erro já existe.');
                        return false;
                    }
                }
            }
            return camposValidos;
        }


        function goBack() {
            window.history.back();
        }
    </script>
    <style>
        .is-invalid {
            border: 1px solid red;
        }

        .error-message {
            color: red;
            font-size: 1em;
        }
    </style>
</body>

</html>