<?php
require '../conexao/conexao.php';
require '../conexao/acesso.php';
require '../configuacoes.php';
require '../configuracao/consulta_banco_dados.php';
require '../configuracao/filtros.php';

$filtros = new Filtros();
$consulta_bb = new ConsultaBancoDeDados();

$produtos = $consulta_bb->get_produtos();
$cidades = $consulta_bb->get_cidades();
$medicos = $consulta_bb->get_medicos();

$produto_principal = null;
$produto_substituto = null;



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

$url = http_build_query([
    'codnome_produto' => $_GET['codnome_produto'] ?? null,
    'produto' => $_GET['produto'] ?? null,
    'fornecedor' => $_GET['fornecedor'] ?? null,
    'tipo' => $_GET['tipo'] ?? null,
    'situacaoSelecionado' => $_GET['situacao'] ?? null,
    'form_submitted' => isset($_GET['form_submitted']) ? $_GET['form_submitted'] : '',
]);

//Declarado as variáveis que serão usadas para edição.
$produto = array(
    'id_produtos_falta' => '0',
    'cod_produto' => '',
    'nome_produto' => '',
    'situacao' => '',
    'previsao' => '',
    'previsao2' => '',
    'observacao' => '',
    'id_situacao' => '',
    'tipo' => '',
    'cidade' => '',
    'fornecedor' => '',
    'quarentena' => '',
    'observacao_gestao' => '',
    'prescritor' => '',
    'orcamento' => '',
    // ... outros campos que você pode ter ...
);

// Consulta SQL Situacao
$sql_situacao = "SELECT id, situacao FROM situacao_falta";

// Executando a consulta
$result_situacao = $connectionmysql->query($sql_situacao);

// Verificando se a consulta foi bem-sucedida
if ($result_situacao) {
    $situacaoArray = array(); // Inicializa o array

    while ($row3 = $result_situacao->fetch_assoc()) {
        $situacaoArray[] = $row3; // Armazena cada linha com id e situacao
    }
} else {
    echo "Erro na execução da consulta: " . $connectionmysql->error;
}

//Verificando se é alteração
if (isset($_GET['id']) && $_GET['id'] == '1') {


    $idProdutos = $_GET['id_produtos_falta'];

    // Preparando a declaração
    $stmt = $connectionmysql->prepare("SELECT st.situacao, pf.*
        FROM kpi.produtos_falta as pf
        LEFT JOIN situacao_falta st ON st.id = pf.id_situacao
        WHERE pf.id_produtos_falta = ?");

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

        // Obtendo os resultados
        $result = $stmt->get_result();
        if ($result->num_rows > 0) {
            $produto = $result->fetch_assoc(); //preenchendo as variáveis com o retorno da query

        } else {
            echo "Nenhuma pessoa encontrada com o ID especificado.";
        }

        $stmt->close();
    } else {
        echo "Erro ao preparar a declaração: " . $connectionmysql->error;
    }
}
//var_dump($produto);
if (isset($_GET['id']) && $_GET['id'] == '1') {
    $produtos_busca = $produto['cod_produto'];
    $produto_falta = $consulta_bb->get_produtos(null, $produtos_busca);

    $produtos_select = [];
    foreach ($produto_falta as $key => $prod) {
        $id = $prod['ID'];
        $nome = $prod['NOME'];
        $referencia = $prod['ID_REFERENCIA'];
        $produtos_select[] = $id . " - " . $nome;
    }

    $produto_principal = isset($produtos_select[0]) ? $produtos_select[0] : '';


    $produtos_busca = $produto['cod_produto'];
    $produto_falta = $consulta_bb->get_produtos(null, $produtos_busca);

    $produtos_select = [];
    foreach ($produto_falta as $key => $prod) {
        $id = $prod['ID'];
        $nome = $prod['NOME'];
        $referencia = $prod['ID_REFERENCIA'];
        $produtos_select[] = $id . " - " . $nome;
    }

    $produto_principal = isset($produtos_select[0]) ? $produtos_select[0] : '';
}
?>

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

<head>
    <link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/chosen/1.8.7/chosen.min.css">
    <style>
        .chosen-container-single .chosen-single {
            border: 1px solid #ced4da;
            border-radius: 0.25rem;
            height: 38px;
            line-height: 36px;
            padding: 0 12px;
            color: #495057;
            background-color: #fff;
            background-image: none;
            box-shadow: none;
        }

        .chosen-container-single .chosen-single div {
            top: 6px;
            /* ajusta a posição da seta */
        }

        .chosen-container-active.chosen-with-drop .chosen-single {
            border-color: #80bdff;
            box-shadow: 0 0 0 0.2rem rgba(0, 123, 255, .25);
        }

        .chosen-container {
            width: 100% !important;
            /* garante que o select ocupe toda a largura */
        }

        .chosen-drop {
            border: 1px solid #ced4da;
            border-top: none;
            border-radius: 0 0 0.25rem 0.25rem;
        }
    </style>
</head>
<?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 method="post" action="processa_cadastro_alteracao_produto.php" onsubmit="return validarFormulario();">
                            <div class="form-row mb-3">
                                <div class="form-group col-md-2">
                                    <label for="grupo" class="col-form-label">Grupo</label>
                                    <select id="grupo" name="grupo" class="form-control" oninput="validarCampo('grupo', this.value)">
                                        <option value="Todos">Selecione um grupo</option>
                                        <option value="1" <?php echo (isset($produto['tipo']) && $produto['tipo'] == "1") ? "selected" : ""; ?>>Alopatia</option>
                                        <option value="2" <?php echo (isset($produto['tipo']) && $produto['tipo'] == "2") ? "selected" : ""; ?>>Homeopatia</option>
                                        <option value="3" <?php echo (isset($produto['tipo']) && $produto['tipo'] == "3") ? "selected" : ""; ?>>Revenda</option>
                                        <option value="4" <?php echo (isset($produto['tipo']) && $produto['tipo'] == "4") ? "selected" : ""; ?>>Embalagem</option>
                                        <option value="9" <?php echo (isset($produto['tipo']) && $produto['tipo'] == "9") ? "selected" : ""; ?>>Outros</option>
                                    </select>
                                </div>

                                <?php echo $filtros->FiltroSearch('Nome_Produto', $produtos, true, $produto_principal, false); ?>

                                <div class="form-group col-md-2" id="campo_nome_produto_manual" style="display: none;">
                                    <label for="nome_produto_manual" class="col-form-label">Nome Produto</label>
                                    <input type="text" id="nome_produto_manual" name="nome_produto_manual" class="form-control" placeholder="Digite o nome do produto" value="<?php echo isset($produto['nome_produto']) ? $produto['nome_produto'] : ''; ?>">
                                </div>

                                <div class="form-group col-md-3 pessoa-fisica">
                                    <label for="situacao" class="col-form-label">Situação</label>
                                    <p>
                                        <select id="situacao" name="situacao" class="form-control">
                                            <option value="" <?= empty($produto['id_situacao']) ? 'selected' : ''; ?> disabled>Escolha uma Situação</option>
                                            <?php
                                            // Itera sobre as situações disponíveis
                                            foreach ($situacaoArray as $situacao) {
                                                $selected = (!empty($produto['id_situacao']) && $produto['id_situacao'] == $situacao['id']) ? 'selected' : '';
                                                echo '<option value="' . $situacao['id'] . '" ' . $selected . '>' . htmlspecialchars($situacao['situacao']) . '</option>';
                                            }
                                            ?>
                                        </select>
                                    </p>
                                </div>



                                <?php
                                echo $filtros->filtroCidade($produto['cidade'], $cidades, false, '', false, 3);
                                echo $filtros->FiltroSearch('Nome_do_Prescritor', $medicos, false, $produto['prescritor'], false);
                                ?>

                                <!-- <div class="form-group col-md-2">
                                    <label for="prescritor" class="col-form-label">Nome do Prescritor</label>
                                    <select id="prescritor" class="chosen-select form-control" data-placeholder="Selecione uma opção">
                                        <option value=""></option>
                                        <?php
                                        foreach ($medicos as $item) {
                                            $selected = ($produto['prescritor'] == $item['NOME']) ? 'selected' : '';
                                            echo '<option value="' . htmlspecialchars($item['NOME']) . '" ' . $selected . '>' . htmlspecialchars($item['NOME']) . '</option>';
                                        }
                                        ?>
                                    </select>
                                </div> -->

                                <div class="form-group col-md-3 pessoa-juridica">
                                    <label for="orcamento" class="col-form-label">Orçamento</label>
                                    <p> <input type="text" name="orcamento" id="orcamento" class="form-control money" placeholder="Informe a Orçamento" value="<?php echo htmlspecialchars($produto['orcamento']); ?>"></p>
                                </div>

                                <div class="form-group col-md-3 pessoa-juridica">
                                    <label for="observacao" class="col-form-label">Observação</label>
                                    <textarea name="observacao" maxlength="190" id="observacao" class="form-control" placeholder="Informe a Observação"><?php echo htmlspecialchars($produto['observacao']); ?></textarea>
                                </div>

                                <input type="hidden" name="id_produtos_falta" id="id_produtos_falta" value="<?php echo htmlspecialchars($produto['id_produtos_falta']); ?>">
                                <input type="hidden" name="url" id="url" value="<?php echo htmlspecialchars($url); ?>">
                                <input type="hidden" name="from_vendedor" id="from_vendedor" value="1">

                                <div class="col-md-3 d-flex " style="justify-content: end;margin-top: 3%">
                                    <div>
                                        <a href=" formulario_inclusao_alteracao_produto_vendedor.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> Salvar</button>
                                    </div>
                                </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>

    <!-- 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>
    <script src="https://code.jquery.com/jquery-3.6.0.min.js"></script>
    <!-- <script src="https://cdnjs.cloudflare.com/ajax/libs/chosen/1.8.7/chosen.jquery.min.js"></script> -->
    <script src="https://cdnjs.cloudflare.com/ajax/libs/jquery.mask/1.14.15/jquery.mask.min.js"></script>

    <script>
        $(document).ready(function() {
            $(".money").mask('#.##0,00', {
                reverse: true
            });
            // $(".p").mask('##0,00', {
            //     reverse: true
            // });
        });
        // Inicializando o Chosen
        // $(document).ready(function() {
        //     $('.chosen-select').chosen({
        //         no_results_text: "Nenhum resultado encontrado para",
        //         allow_single_deselect: true
        //     });
        // });
    </script>
    <script>
        initDropdownFilterSilmples('nome_produto', 'grupo', true);
        initDropdownFilterSilmples('nome_do_prescritor', 'from_vendedor', true);

        function exibirMensagemErro(mensagem, id) {
            let campo = document.getElementById(id);
            let parentDiv = campo.closest('.input-group') || campo.parentNode; // Encontra a div que contém o input

            let errorDiv = document.createElement('div');
            errorDiv.textContent = mensagem;
            errorDiv.classList.add('error-message', 'text-danger', 'mt-1');

            // Remove a mensagem anterior, se existir
            removerMensagemErro(id);
            removerMensagemErro('div_nome_produto');

            // Verifica se o id é 'codnome_produto' e aplica a classe no 'nome_produto'
            if (id === 'codnome_produto') {
                let nomeProdutoCampo = document.getElementById('nome_produto'); // Encontra o campo 'nome_produto'
                nomeProdutoCampo.classList.add('is-invalid'); // Adiciona a classe de erro
                // Insere a mensagem após o campo 'nome_produto'
                nomeProdutoCampo.parentNode.insertAdjacentElement('afterend', errorDiv); // Adiciona a mensagem de erro após o input 'nome_produto'
            } else {
                campo.classList.add('is-invalid'); // Caso não seja 'codnome_produto', aplica no próprio campo
                parentDiv.appendChild(errorDiv); // Adiciona a mensagem de erro dentro da div do campo
            }
        }

        function removerMensagemErro(id) {
            let campo = document.getElementById(id);
            let existingError;

            if (id === 'codnome_produto') {
                let nomeProdutoCampo = document.getElementById('div_nome_produto');
                existingError = nomeProdutoCampo.parentNode.querySelector('.error-message');

                if (!existingError) {
                    existingError = nomeProdutoCampo.closest('.input-group').nextElementSibling.querySelector('.error-message');
                }
            } else {
                existingError = campo.parentNode.querySelector('.error-message');
            }

            if (existingError) {
                existingError.remove();
            }

            if (id === 'codnome_produto') {
                let nomeProdutoCampo = document.getElementById('nome_produto');
                nomeProdutoCampo.classList.remove('is-invalid');
            } else {
                campo.classList.remove('is-invalid');
            }
        }


        function validarCampo(id) {
            let campo = document.getElementById(id);
            if (!campo) return false;

            let valor = campo.value.trim();
            let valido = valor !== ""; // O campo não pode estar vazio

            // Caso especial para o campo "filial"
            if (id === "filial" && valor === "Todos") {
                valido = false;
            }

            //console.log(campo)
            // console.log(valido)
            if (!valido || valor === "Todos" || valor === "Selecione") {
                let mensagem = id === "filial" ? "Selecione uma filial." : "Por favor, preencha este campo.";
                exibirMensagemErro(mensagem, id);
            } else {
                removerMensagemErro(id);
            }

            return valido;
        }

        function validarFormulario() {
            let camposValidos = true;

            // IDs de campos que não precisam ser validados
            const camposIgnorados = ["situacao", "prescritor", "orcamento", "observacao", "cidade", "codnome_do_prescritor", "nome_do_prescritor"];

            // Verifica se nome_produto deve ser ignorado com base no valor de "grupo"
            const campoGrupo = document.getElementById("grupo");
            const ignorarNomeProduto = campoGrupo && campoGrupo.value === 'I';

            // Iterar pelos campos visíveis
            const campos = document.querySelectorAll('.form-group input, .form-group select, .form-group textarea');

            campos.forEach(function(campo) {
                if (camposIgnorados.includes(campo.id)) {
                    return;
                }

                if (ignorarNomeProduto && (campo.id === "nome_produto" || campo.id === "codnome_produto")) {
                    return;
                }

                // Verifica se o campo está visível
                if (campo.closest(".form-group")?.style.display !== "none") {
                    if (!validarCampo(campo.id)) {
                        camposValidos = false;
                    }
                }
            });

            return camposValidos;
        }


        function goBack() {
            window.history.back();
        }

        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);
        });

        document.addEventListener('DOMContentLoaded', function() {
            let nomeProdutoCampo = document.getElementById('nome_produto');
            let codNomeProdutoCampo = document.getElementById('codnome_produto');

            function validarNomeProduto() {
                validarCampo('codnome_produto');
                removerMensagemErro('nome_produto');
                removerMensagemErro('codnome_produto');
            }

            if (nomeProdutoCampo) {
                nomeProdutoCampo.addEventListener('input', validarNomeProduto);
                nomeProdutoCampo.addEventListener('change', validarNomeProduto);
            }

            if (codNomeProdutoCampo) {
                codNomeProdutoCampo.addEventListener('input', validarNomeProduto);
                codNomeProdutoCampo.addEventListener('change', validarNomeProduto);
            }
        });
    </script>
    <script>
        document.addEventListener('DOMContentLoaded', function() {
            const grupoSelect = document.getElementById('grupo');
            const campoAutoComplete = document.getElementById('search_nome_produto'); // ID do FiltroSearch
            const campoTextoManual = document.getElementById('campo_nome_produto_manual');
            const inputTextoManual = campoTextoManual.querySelector('input');

            function toggleCampos() {
                // Limpa o campo sempre que a função for chamada
                //inputTextoManual.value = '';


                if (grupoSelect.value === 'I') {
                    campoAutoComplete.style.display = 'none';
                    campoTextoManual.style.display = 'block';
                } else {
                    campoAutoComplete.style.display = 'block';
                    campoTextoManual.style.display = 'none';
                }
            }

            grupoSelect.addEventListener('change', toggleCampos);
            toggleCampos(); // Executa no carregamento inicial
        });
    </script>
    <style>
        .is-invalido {
            box-shadow: 0 0 5px red !important;
        }
    </style>
</body>

</html>