<?php
require '../conexao/conexao.php';
require '../conexao/acesso.php';
require '../configuacoes.php';
require '../configuracao/consulta_banco_dados.php';
require '../configuracao/filtros.php';
require './consulta_bd.php';
//Declarando null pro resultado do record, caso o usuário clique em pesquisar, ela será preenchida.
$consulta_bb = new ConsultabancoDeDados();
$filtros = new Filtros();
$pagamentos_bd = new ConsultaPagamentos();

$filiais = $consulta_bb->get_filiais();

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

$id = $_GET['id_pagamento'] ?? 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);
$nome = $_GET['nome'] ?? null;

$tipo = $_GET['tipo_solicitacao'] ?? null;
$situacao = $_GET['situacao'] ?? 'Todos';
$dataInicial = $_GET['dataInicial'] ?? null;
$dataFinal = $_GET['dataFinal'] ?? null;

$url = http_build_query([
    'nome' => $nome,
    'tipo_solicitacao' => $tipo,
    'filial' => $filialselect,
    'dataInicial' => $dataInicial,
    'dataFinal' => $dataFinal,
    'situacao' => $situacao,
    'form_submitted' => isset($_GET['form_submitted']) ? $_GET['form_submitted'] : '',
]);

//Declarado as variáveis que serão usadas para edição.
$pagamento = array(
    0 => array(
        'id' => $_GET['id'] ?? '0',
        'tipo_solicitacao' => $_GET['tipo_solicitacao'] ?? '',
        'filial' => '',
        'tipo' => $_GET['tipo'] ?? '',
        'tipo_pagamento' => $_GET['tipo_pagamento'] ?? '',
        'banco' => $_GET['banco'] ?? '',
        'conta' => $_GET['conta'] ?? '',
        'agencia' => $_GET['agencia'] ?? '',
        'cpf_cnpj' => $_GET['cpf_cnpj'] ?? '',
        'chave_pix' => $_GET['chave_pix'] ?? '',
        'ultimos_digitos' => $_GET['ultimos_digitos'] ?? '',
        'valor' => $_GET['valor'] ?? '',
        'data_pagamento' => $_GET['data_pagamento'] ?? '',
        'numero_autorizacao' => $_GET['numero_autorizacao'] ?? '',
        'numero_requisicao_cupom' => $_GET['numero_requisicao_cupom'] ?? '',
        'nome_cliente' => $_GET['nome_cliente'] ?? '',
        'usuario_solicitante' => $_GET['usuario_solicitante'] ?? '',
        'usuario_financeiro_responsavel' => $_GET['usuario_financeiro_responsavel'] ?? '',
        'data_solicitacao' => $_GET['data_solicitacao'] ?? '',
        'cod_fcerta' => $_GET['cod_fcerta'] ?? '',
        'comprovante' => $_GET['comprovante'] ?? '',
        'motivo_estorno' => $_GET['motivo_estorno'] ?? null,
        'observacoes' => $_GET['observacoes'] ?? '',
        'data_aprovacao_rejeicao' => $_GET['data_aprovacao_rejeicao'] ?? '',
        'valor_estorno' => $_GET['valor_estorno'] ?? '',
        'identificacao_cliente' => $_GET['identificacao_cliente'] ?? '',
    )
);

$sql_base = "SELECT * FROM bancos b where 1=1 and situacao = 'A'";
$result_erros = $connectionmysql->query($sql_base);
$bancos = array();
if ($result_erros) {
    while ($row_banco = $result_erros->fetch_assoc()) {
        $bancos[] = $row_banco;
    }
} else {
    echo "Erro na execução da consulta: " . $connectionmysql->error;
}
if (isset($_GET['form_submitted']) && $_GET['form_submitted'] == '1' && !empty($id)) {
    $pagamento = $pagamentos_bd->getPagamentos(null, null, null, $id);
}
//var_dump($pagamento);
?>

<!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>
                        <!-- <a href="index.php?<?= $url ?>" class="btn btn-light"><i class="mdi mdi-keyboard-backspace"></i> Voltar</a> -->
                    </div>

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

                    <div class="col-12">
                        <form id="from_inclusao_pagamento" method="post" action="processa_cadastro_alteracao_pagamento.php" enctype="multipart/form-data" onsubmit="return validarFormulario();">
                            <div class="form-row mb-3">
                                <?php
                                echo $filtros->filtroFilialSimples($pagamento[0]['filial'], $filiais, false, null, false);
                                ?>
                                <div class="form-group col-xxl-2">
                                    <label for="tipo_solicitacao" class="col-form-label">Tipo</label>
                                    <select id="tipo_solicitacao" name="tipo_solicitacao" class="form-control" oninput="validarCampo('tipo_solicitacao',this.value)">
                                        <option value="Confirmação" <?php echo (isset($pagamento[0]['tipo_solicitacao']) && $pagamento[0]['tipo_solicitacao'] == "Confirmação") ? "selected" : ""; ?>>Confirmação</option>
                                        <option value="Estorno" <?php echo (isset($pagamento[0]['tipo_solicitacao']) && $pagamento[0]['tipo_solicitacao'] == "Estorno") ? "selected" : ""; ?>>Estorno</option>
                                    </select>
                                </div>

                                <div class="form-group col-xxl-2 ">
                                    <label for="nome_cliente" class="col-form-label">Cliente</label>
                                    <p><input type="text" name="nome_cliente" id="nome_cliente" class="form-control" placeholder="Informe o N° da Cliente" value="<?php echo htmlspecialchars($pagamento[0]['nome_cliente']); ?>" oninput="validarCampo('nome_cliente',this.value)"></p>
                                </div>

                                <div class="form-group col-xxl-2">
                                    <label for="identificacao_cliente" class="col-form-label">Identificação do cliente</label>
                                    <p>
                                        <input class="form-control cpfcnpj" id="identificacao_cliente" type="text" name="identificacao_cliente"
                                            placeholder="CPF/CNPJ"
                                            value="<?php echo isset($pagamento[0]['identificacao_cliente']) ? preg_replace('/\D/', '', $pagamento[0]['identificacao_cliente']) : ''; ?>"
                                            oninput="validarCampo('identificacao_cliente', this.value)">
                                    </p>
                                </div>

                                <div class="form-group col-xxl-2 ">
                                    <label for="usuario_solicitante" class="col-form-label">Solicitante</label>
                                    <p><input type="text" name="usuario_solicitante" id="usuario_solicitante" class="form-control" placeholder="Informe o N° da Solicitante" value="<?php echo htmlspecialchars($pagamento[0]['usuario_solicitante']); ?>" oninput="validarCampo('usuario_solicitante',this.value)"></p>
                                </div>

                                <div class="form-group col-xxl-1  ">
                                    <label for="cod_fcerta" class="col-form-label">Código Pharmacie</label>
                                    <p><input type="text" name="cod_fcerta" id="cod_fcerta" class="form-control" placeholder=" Codigo Código Pharmacie" value="<?php echo htmlspecialchars($pagamento[0]['cod_fcerta']); ?>" oninput="validarCampo('cod_fcerta',this.value)"></p>
                                </div>

                                <div class="form-group col-xxl-1 ">
                                    <label for="numero_autorizacao" class="col-form-label">N° Autorização</label>
                                    <p><input type="text" name="numero_autorizacao" id="numero_autorizacao" class="form-control number" placeholder="Informe o N° da Autorização" value="<?php echo htmlspecialchars($pagamento[0]['numero_autorizacao']); ?>"></p>
                                </div>

                                <div class="form-group col-xxl-1 ">
                                    <label for="numero_requisicao_cupom" class="col-form-label">N° Requisição</label>
                                    <p><input type="text" name="numero_requisicao_cupom" id="numero_requisicao_cupom" class="form-control number" placeholder="Informe o N° da Requisição" value="<?php echo htmlspecialchars($pagamento[0]['numero_requisicao_cupom']); ?>" oninput="validarCampo('numero_requisicao_cupom',this.value)"></p>
                                </div>


                                <div class="form-group col-xxl-1 ">
                                    <label for="valor" class="col-form-label">Valor</label>
                                    <p><input type="text" name="valor" id="valor" class="form-control money" placeholder="R$ 0,00" value="<?php echo htmlspecialchars($pagamento[0]['valor']); ?>" oninput="validarCampo('valor',this.value)"></p>
                                </div>

                                <div class="form-group col-xxl-2 ">
                                    <label for="data_pagamento" class="col-form-label">Data da Venda</label>
                                    <p> <input class="form-control" id="data_pagamento" type="date" name="data_pagamento" value="<?php echo htmlspecialchars($pagamento[0]['data_pagamento']); ?>" oninput="validarCampo('data_pagamento',this.value)"></p>
                                </div>

                                <div class="form-group col-xxl-2 ">
                                    <label for="tipo_pagamento" class="col-form-label">Tipo de Pagamento</label>
                                    <select id="tipo_pagamento" name="tipo_pagamento" class="form-control" oninput="validarCampo('tipo_pagamento',this.value)">
                                        <option value="">Selecione</option>
                                        <option value="PIX" <?php echo ($pagamento[0]['tipo_pagamento'] == 'PIX') ? 'selected' : ''; ?>>PIX</option>
                                        <option value="Deposito" <?php echo ($pagamento[0]['tipo_pagamento'] == 'Deposito') ? 'selected' : ''; ?>>Deposito</option>
                                        <option value="Cartão" <?php echo ($pagamento[0]['tipo_pagamento'] == 'Cartão') ? 'selected' : ''; ?>>Cartão de Credito</option>
                                    </select>
                                </div>

                                <div class="form-group col-xxl-2">
                                    <label for="banco_select" class="col-form-label">Banco</label>
                                    <select id="banco_select" name="banco_select" class="form-control" oninput="validarCampo('banco_select',this.value)">
                                        <option value="" <?php echo (!isset($pagamento[0]['banco']) || $pagamento[0]['banco'] == "Todos") ? "selected" : ""; ?>>Selecione</option>
                                        <?php foreach ($bancos as $item) : ?>
                                            <option value="<?php echo $item['id_banco']; ?>" <?php echo (isset($pagamento[0]['banco']) && $pagamento[0]['banco'] == $item['id_banco']) ? "selected" : ""; ?>>
                                                <?php echo $item['banco']; ?>
                                            </option>
                                        <?php endforeach; ?>
                                    </select>
                                </div>
                                <!-- TIPO PIX -->

                                <!-- <div class="form-group col-xxl-1 ">
                                    <label for="banco" class="col-form-label">Banco</label>
                                    <p><input type="text" name="banco" id="banco" class="form-control" placeholder="Informe o banco" value="<?php //echo htmlspecialchars($pagamento[0]['banco']); 
                                                                                                                                            ?>" oninput="validarCampo('banco',this.value)"></p>
                                </div>

                                <div class="form-group col-xxl-1 ">
                                    <label for="agencia" class="col-form-label">Agéncia</label>
                                    <p><input type="text" name="agencia" id="agencia" class="form-control" placeholder="Informe a Agéncia" value="<? php // echo htmlspecialchars($pagamento[0]['agencia']); 
                                                                                                                                                    ?>" oninput="validarCampo('agencia',this.value)"></p>
                                </div>

                                <div class="form-group col-xxl-1 ">
                                    <label for="conta" class="col-form-label">Conta</label>
                                    <p><input type="text" name="conta" id="conta" class="form-control" placeholder="Informe a Conta" value="<?php //echo htmlspecialchars($pagamento[0]['conta']); 
                                                                                                                                            ?>" oninput="validarCampo('conta',this.value)"></p>
                                </div>

                                <div class="form-group col-xxl-2 ">
                                    <label for="chave_pix" class="col-form-label">Chave PIX</label>
                                    <p><input type="text" name="chave_pix" id="chave_pix" class="form-control" placeholder="Informe a Chave PIX" value="<?php //echo htmlspecialchars($pagamento[0]['chave_pix']); 
                                                                                                                                                        ?>" oninput="validarCampo('chave_pix',this.value)"></p>
                                </div> -->
                                <!-- TIPO CARTÃO <span class="text-danger">*</span> -->

                                <div class="form-group col-xxl-2 ">
                                    <label for="ultimos_digitos" class="col-form-label">4 Ultimos digitos do cartão</label>
                                    <p><input type="text" name="ultimos_digitos" id="ultimos_digitos" class="form-control" placeholder="Informe os ultimos digitos" value="<?php echo htmlspecialchars($pagamento[0]['ultimos_digitos']); ?>" oninput="validarCampo('ultimos_digitos',this.value)"></p>
                                </div>

                                <div class="form-group col-xxl-3">
                                    <label for="motivo_estorno" class="col-form-label">
                                        Motivo do Estorno <span class="text-danger">*</span>
                                    </label>
                                    <textarea name="motivo_estorno" id="motivo_estorno" class="form-control"
                                        placeholder="Motivo para o Estorno"
                                        rows="2"
                                        oninput="validarCampo('motivo_estorno', this.value)"><?= isset($pagamento[0]['motivo_estorno']) ? htmlspecialchars(trim($pagamento[0]['motivo_estorno'])) : ''; ?></textarea>
                                </div>

                                <div class="form-group col-xxl-3">
                                    <label for="observacoes" class="col-form-label">
                                        Observação
                                    </label>
                                    <textarea name="observacoes" id="observacoes" class="form-control"
                                        placeholder="Informe Uma Observação Social"
                                        rows="2"
                                        oninput="validarCampo('observacoes', this.value)"><?= isset($pagamento[0]['observacoes']) ? htmlspecialchars($pagamento[0]['observacoes']) : ''; ?></textarea>
                                </div>

                                <?php
                                if (isset($_GET['id']) && $_GET['id'] == '1') : ?>
                                    <div class="form-group col-xxl-3 ">
                                        <label for="altera_comprovante" class="col-form-label">Alterar Comprovante</label>
                                        <select id="altera_comprovante" name="altera_comprovante" class="form-control">
                                            <option value="Nao" <?php echo (isset($altera_comprovante) && $altera_comprovante == 'Nao') ? 'selected' : ''; ?>>Não</option>
                                            <option value="Sim" <?php echo (isset($altera_comprovante) && $altera_comprovante == 'Sim') ? 'selected' : ''; ?>>Sim</option>
                                        </select>
                                    </div>
                                <?php else : ?>
                                    <input type="hidden" id="altera_comprovante" name="altera_comprovante" value="Sim">
                                <?php endif; ?>

                                <div class="form-group col-xxl-3">
                                    <label for="comprovante" class="col-form-label">Comprovante</label>
                                    <!-- Input de upload -->
                                    <input type="file" name="comprovante" id="comprovante" class="form-control" accept="image/*,.pdf" oninput="validarCampo('comprovante',this.value)">
                                </div>

                                <input type="hidden" name="id_pagamento" id="id_pagamento" value="<?php echo htmlspecialchars($pagamento[0]['id']); ?>">
                                <input type="hidden" name="url" id="url" value="<?php echo htmlspecialchars($url); ?>">
                                <input type="hidden" name="form" id="form" value="caixa">
                                <div class="col-12 text-right">
                                    <a href="#" class="btn btn-warning mr-2" onclick="reloadPage()">
                                        <i class="mdi mdi-plus"></i> Limpar
                                    </a>
                                    <button type="submit" class="btn btn-primary"><i class="mdi mdi-magnify"></i> Salvar</button>
                                </div>
                        </form>
                    </div>
                </div>
            </div>
        </div>
    </div>
    <!-- ============================================================== -->
    <!-- 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>
    <script src="../../assets/libs/jquery/jquery.min.js"></script>
    <script src="../../assets/libs/bootstrap/js/bootstrap.bundle.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 -->

    <!-- jQuery -->
    <script src="https://code.jquery.com/jquery-3.6.0.min.js"></script>

    <!-- jQuery Mask Plugin -->
    <script src="https://cdn.jsdelivr.net/npm/jquery-mask-plugin@1.14.15/dist/jquery.mask.min.js"></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);
        });
        $(document).ready(function() {
            function aplicarMascara() {
                let campo = $("#identificacao_cliente");
                let valor = campo.val() //.replace(/\D/g, ''); // Remove caracteres não numéricos

                let mask = (valor.length >= 14) ? "00.000.000/0000-00" : "000.000.000-00";
                campo.mask(mask);
            }

            // Aplica a máscara ao digitar
            $("#identificacao_cliente").on("input", function() {
                aplicarMascara();
            });

            // Aplica a máscara ao carregar a página (se houver um valor já preenchido)
            aplicarMascara();
        });



        $(".money").mask("00.000.00", {
            reverse: true
        });

        $(".number").mask("0000000000", {
            reverse: true
        });

        function reloadPage() {
            location.reload();
        }

        function limparFormulario() {
            var formulario = document.getElementById("from_inclusao_pagamento");
            var elementos = formulario.elements;

            for (var i = 0; i < elementos.length; i++) {
                var elemento = elementos[i];

                // Limpa o valor dos campos de texto
                if (elemento.type !== "button" && elemento.type !== "submit" && elemento.tagName !== "SELECT") {
                    elemento.value = "";
                }

                // Reseta o valor dos campos de seleção para a primeira opção
                if (elemento.tagName === "SELECT") {
                    elemento.selectedIndex = 0;
                }
            }
        }

        function atualizarVisibilidadeCampos() {
            // Obter o valor do tipo de pagamento
            let tipo_pagamento = document.getElementById("tipo_pagamento").value;
            let tipo_solicitacao = document.getElementById("tipo_solicitacao").value;
            let altera_comprovante = document.getElementById("altera_comprovante").value;

            // Obter os campos
            //  let chavePix = document.getElementById("chave_pix").closest(".form-group");
            //   let banco = document.getElementById("banco").closest(".form-group");
            let banco_financeiro = document.getElementById("banco_select").closest(".form-group");
            // let agencia = document.getElementById("agencia").closest(".form-group");
            //  let conta = document.getElementById("conta").closest(".form-group");
            let ultimos_digitos = document.getElementById("ultimos_digitos").closest(".form-group");
            let motivoestorno = document.getElementById("motivo_estorno").closest(".form-group");
            let comprovante = document.getElementById("comprovante").closest(".form-group");

            // Inicializar todos os campos como ocultos
            //chavePix.style.display = "none";
            banco_financeiro.style.display = "none";
            //banco_financeiro.style.display = "none";
            //agencia.style.display = "none";
            //conta.style.display = "none";
            ultimos_digitos.style.display = "none";
            motivoestorno.style.display = "none";
            comprovante.style.display = "none";


            if (tipo_solicitacao === "Estorno") {
                motivoestorno.style.display = "block";
                // if (tipo_pagamento === "PIX") {
                //     chavePix.style.display = "block";
                // } else if (tipo_pagamento === "Deposito") {
                //     banco.style.display = "block";
                //     agencia.style.display = "block";
                //     conta.style.display = "block";
                // }
            }

            if (altera_comprovante === "Sim") {
                comprovante.style.display = "block";
            }
            // Exibir os campos conforme o tipo de pagamento selecionado
            if (tipo_pagamento === "PIX") {
                banco_financeiro.style.display = "block";
            } else if (tipo_pagamento === "Deposito") {
                banco_financeiro.style.display = "block";
            } else if (tipo_pagamento === "Cartão") {
                banco_financeiro.style.display = "block";
                ultimos_digitos.style.display = "block";
            }
        }

        // Executar a função ao carregar a página e quando o tipo de pagamento mudar
        document.addEventListener("DOMContentLoaded", atualizarVisibilidadeCampos);
        document.getElementById("tipo_pagamento").addEventListener("change", atualizarVisibilidadeCampos);
        document.getElementById("tipo_solicitacao").addEventListener("change", atualizarVisibilidadeCampos);
        document.getElementById("altera_comprovante").addEventListener("change", atualizarVisibilidadeCampos);

        // Função para exibir a mensagem de erro
        function exibirMensagemErro(mensagem, id) {
            let campo = document.getElementById(id);
            let errorDiv = document.createElement('div');
            errorDiv.textContent = mensagem;
            errorDiv.classList.add('error-message', 'text-danger');

            removerMensagemErro(id); // Remover mensagem anterior, se existir

            campo.classList.add('is-invalid');
            campo.parentNode.appendChild(errorDiv);
        }

        // Função para remover a mensagem de erro
        function removerMensagemErro(id) {
            let campo = document.getElementById(id);
            let existingError = campo.parentNode.querySelector('.error-message');
            if (existingError) {
                existingError.remove();
            }
            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;
        //     }

        //     // Validação específica para o campo "comprovante" (arquivo)
        //     if (id === "comprovante") {
        //         let arquivo = campo.files[0];

        //         if (!arquivo) {
        //             valido = false;
        //         } else {
        //             const tiposPermitidos = ["image/jpeg", "image/png", "image/gif", "image/bmp", "application/pdf"];

        //             if (!tiposPermitidos.includes(arquivo.type)) {
        //                 valido = false;
        //                 exibirMensagemErro("Apenas imagens e PDFs são permitidos!", id);
        //             }
        //         }
        //     }

        //     // Exibir ou remover mensagens de erro
        //     if (!valido) {
        //         let mensagem = id === "filial" ?
        //             "Selecione uma filial." :
        //             id === "comprovante" ?
        //             "Por favor, selecione um arquivo válido (imagem)." :
        //             "Por favor, preencha este campo.";

        //         exibirMensagemErro(mensagem, id);
        //     } else {
        //         removerMensagemErro(id);
        //     }

        //     return valido;
        // }

        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
            let mensagem = "Por favor, preencha este campo.";

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

            // Validação específica para o campo "comprovante" (arquivo)
            if (id === "comprovante") {
                let arquivo = campo.files[0];

                if (!arquivo) {
                    valido = false;
                    mensagem = "Por favor, selecione um arquivo válido (imagem ou PDF).";
                } else {
                    const tiposPermitidos = ["image/jpeg", "image/png", "image/gif", "image/bmp", "application/pdf"];
                    const tamanhoMaximoMB = 2; // Limite de 2MB
                    const tamanhoMaximoBytes = tamanhoMaximoMB * 1024 * 1024;

                    if (!tiposPermitidos.includes(arquivo.type)) {
                        valido = false;
                        mensagem = "Apenas imagens e PDFs são permitidos!";
                    } else if (arquivo.type === "application/pdf" && arquivo.size > tamanhoMaximoBytes) {
                        valido = false;
                        mensagem = `O PDF deve ter no máximo ${tamanhoMaximoMB}MB.`;
                    }
                }
            }

            // Exibir ou remover mensagens de erro
            if (!valido) {
                exibirMensagemErro(mensagem, id);
            } else {
                removerMensagemErro(id);
            }

            return valido;
        }


        // Função para validar o CPF
        function validarCPF(cpf) {
            cpf = cpf.replace(/[^\d]+/g, '');
            if (cpf == '') return false;
            if (cpf.length != 11 ||
                cpf == "00000000000" ||
                cpf == "11111111111" ||
                cpf == "22222222222" ||
                cpf == "33333333333" ||
                cpf == "44444444444" ||
                cpf == "55555555555" ||
                cpf == "66666666666" ||
                cpf == "77777777777" ||
                cpf == "88888888888" ||
                cpf == "99999999999")
                return false;

            // Valida 1o digito
            let add = 0;
            for (let i = 0; i < 9; i++)
                add += parseInt(cpf.charAt(i)) * (10 - i);
            let rev = 11 - (add % 11);
            if (rev == 10 || rev == 11)
                rev = 0;
            if (rev != parseInt(cpf.charAt(9)))
                return false;

            // Valida 2o digito
            add = 0;
            for (let i = 0; i < 10; i++)
                add += parseInt(cpf.charAt(i)) * (11 - i);
            rev = 11 - (add % 11);
            if (rev == 10 || rev == 11)
                rev = 0;
            if (rev != parseInt(cpf.charAt(10)))
                return false;

            return true;
        }

        // Função para validar o CNPJ
        function validarCNPJ(cnpj) {
            cnpj = cnpj.replace(/[^\d]/g, '');

            if (cnpj === '' || cnpj.length !== 14) return false;

            // Lista de CNPJs inválidos
            const invalidos = [
                '00000000000000',
                '11111111111111',
                '22222222222222',
                '33333333333333',
                '44444444444444',
                '55555555555555',
                '66666666666666',
                '77777777777777',
                '88888888888888',
                '99999999999999'
            ];
            if (invalidos.includes(cnpj)) return false;

            // Validação do primeiro dígito
            let tamanho = cnpj.length - 2;
            let numeros = cnpj.substring(0, tamanho);
            let digitos = cnpj.substring(tamanho);
            let soma = 0;
            let pos = tamanho - 7;

            for (let i = tamanho; i >= 1; i--) {
                soma += numeros.charAt(tamanho - i) * pos--;
                if (pos < 2) pos = 9;
            }

            let resultado = soma % 11 < 2 ? 0 : 11 - soma % 11;
            if (resultado != digitos.charAt(0)) return false;

            // Validação do segundo dígito
            tamanho++;
            numeros = cnpj.substring(0, tamanho);
            soma = 0;
            pos = tamanho - 7;
            for (let i = tamanho; i >= 1; i--) {
                soma += numeros.charAt(tamanho - i) * pos--;
                if (pos < 2) pos = 9;
            }
            resultado = soma % 11 < 2 ? 0 : 11 - soma % 11;
            if (resultado != digitos.charAt(1)) return false;

            return true;
        }

        function validarIdentificacaoCliente() {
            let campo = document.getElementById("identificacao_cliente");
            if (!campo) return false;

            let valor = campo.value.trim();
            let valido = valor !== "" && (validarCPF(valor) || validarCNPJ(valor)); // Deve ser CPF ou CNPJ válido

            if (!valido) {
                exibirMensagemErro("Informe um CPF ou CNPJ válido.", "identificacao_cliente");
            } else {
                removerMensagemErro("identificacao_cliente");
            }

            return valido;
        }

        function validarFormulario() {
            let camposValidos = true;

            // Iterar por todos os campos visíveis e validar
            let campos = document.querySelectorAll('.form-group input, .form-group select, .form-group textarea');

            campos.forEach(function(campo) {
                // Ignorar o campo "numero_autorizacao"
                if (campo.id === "numero_autorizacao") {
                    return; // Continua para o próximo campo sem validar
                }
                if (campo.id === "observacoes") {
                    return; // Continua para o próximo campo sem validar
                }
                if (campo.id === "numero_requisicao_cupom") {
                    return; // Continua para o próximo campo sem validar
                }
                if (campo.closest(".form-group").style.display !== "none") {
                    if (!validarCampo(campo.id)) {
                        camposValidos = false;
                    }
                }
            });

            // Valida o CPF ou CNPJ no campo identificacao_cliente
            if (!validarIdentificacaoCliente()) {
                camposValidos = 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>