<?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 './consulta_bd.php';
require '../logs/gera-log.php';
//Declarando null pro resultado do record, caso o usuário clique em pesquisar, ela será preenchida.
$resultmeta = null;

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

$bancos = $pagamentos_bd->getBancos();
$filiais = $consulta_bb->get_filiais();

$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;
$banco_select = $_GET['banco_select'] ?? null;

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

$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'] : '',
]);

//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, // módulo
      $_SESSION['CodUsuario'],
       $_SESSION['NomeUsuario']
     );

    $pagamentos = $pagamentos_bd->getPagamentos($nome, $tipo, $situacao, null, $filial, $dataInicial, $dataFinal, $banco_select);
}
//var_dump($pagamentos);
?>

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

<head>
    <link rel="stylesheet" href="../configuracao/modalexcluir.css">
</head>
<?php
$pageTitle = "Pagamentos"; // 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">Pagamentos</h4>
                    </div>

                    <div class="col-6 text-right">
                        <a href="formulario_inclusao_alteracao_pagamento.php?id=0&<?= $url ?>" class="btn btn-light" alt="Incluir Cadastro" title="Incluir Cadastro"><i class="mdi mdi-plus"></i> Adicionar</a>
                    </div>

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

                    <div class="col-12">
                        <form method="get" action="" onsubmit="return validarFormulario()">
                            <div class="form-row mb-3">
                                <?php echo $filtros->filtroFilialSimples($filialselect, $filiais); ?>

                                <div class="form-group col-6 col-md-4 col-lg-2">
                                    <label for="nome" class="col-form-label">Nome Cliente</label>
                                    <input type="text" class="form-control" id="nome" name="nome" placeholder="Nome" value="<?php echo isset($nome) ? htmlspecialchars($nome) : ''; ?>">

                                </div>

                                <div class="form-group col-6 col-md-4 col-lg-2">
                                    <label for="tipo_solicitacao" class="col-form-label">Tipo</label>
                                    <select id="tipo_solicitacao" name="tipo_solicitacao" class="form-control">
                                        <option value="Todos" <?php echo (!isset($tipo) || $tipo == "Todos") ? "selected" : ""; ?>>Todos</option>
                                        <option value="Confirmação" <?php echo (isset($tipo) && $tipo == "Confirmação") ? "selected" : ""; ?>>Confirmação</option>
                                        <option value="Estorno" <?php echo (isset($tipo) && $tipo == "Estorno") ? "selected" : ""; ?>>Estorno</option>
                                    </select>
                                </div>

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

                                <div class="form-group col-6 col-md-4 col-lg-2">
                                    <label for="situacao" class="col-form-label">Situação</label>
                                    <select id="situacao" name="situacao" class="form-control">
                                        <option value="Todos" <?php echo (!isset($situacao) || $situacao == "Todos") ? "selected" : ""; ?>>Todos</option>
                                        <option value="Liberado" <?php echo (!isset($situacao) || $situacao == "Liberado") ? "selected" : ""; ?>>Liberado</option>
                                        <option value="Em Análise" <?php echo (isset($situacao) && $situacao == "Em Análise") ? "selected" : ""; ?>>Em Análise</option>
                                        <option value="Rejeitado" <?php echo (isset($situacao) && $situacao == "Rejeitado") ? "selected" : ""; ?>>Rejeitado</option>
                                    </select>
                                </div>

                                <?php echo $filtros->FiltroDataInicioFim('Data', false); ?>

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

                                <div class="col-6 col-md-8 col-lg-10  mt-3 text-right">
                                    <a href="index.php" class="btn btn-warning mr-2"><i class="mdi mdi-plus"></i> Limpar</a>
                                    <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 Solicitações</h6>
                        </div>

                        <table id="datatable-buttons" class="table table-striped table-bordered dt-responsive nowrap">
                            <thead>
                                <tr class="text-center">
                                    <th>Filial</th>
                                    <th>Tipo</th>
                                    <th>Situação</th>
                                    <th>Banco</th>
                                    <th>Cliente</th>
                                    <th>Valor</th>
                                    <th>N° Requisição</th>
                                    <th>Resp</th>
                                    <th>Data Solicitação</th>
                                    <th>Ações</th>
                                </tr>
                            </thead>
                            <tbody>
                                <?php
                                $hasResults = false;  // Inicializa como false
                                if ($pagamentos) {
                                    foreach ($pagamentos as $row) {
                                        $hasResults = true;
                                        $id = $row['id']; ?>
                                        <tr class="text-center">

                                            <td><?php echo htmlspecialchars($row['filial']); ?></td>
                                            <td><?php echo htmlspecialchars($row['tipo_solicitacao']); ?></td>
                                            <td class="
                                            <?php
                                            if ($row['situacao'] == 'Liberado') {
                                                echo 'situacao-liberado';
                                            } elseif ($row['situacao'] == 'Em Análise') {
                                                echo 'situacao-em-analise';
                                            } elseif ($row['situacao'] == 'Rejeitado') {
                                                echo 'situacao-rejeitado';
                                            } ?>">
                                                <b> <?php echo htmlspecialchars($row['situacao']); ?></b>
                                            </td>
                                            <td><?php echo htmlspecialchars($row['nome_banco'] ?? 'N/A'); ?></td>
                                            <td><?php echo htmlspecialchars($row['nome_cliente']); ?></td>
                                            <td><?php echo number_format($row['valor'], 2, ',', '.'); ?></td>
                                            <td><?php echo htmlspecialchars($row['numero_requisicao_cupom']); ?></td>
                                            <td><?php echo htmlspecialchars($row['usuario_solicitante']); ?></td>
                                            <td><?php echo date("d/m/Y H:i", strtotime($row['data_solicitacao'])); ?></td>

                                            <td class="col-2">
                                                <div class="table-actions">
                                                    <a href="detalhar_pagamento_financeiro.php?id_pagamento=<?php echo $id; ?>&<?php echo $url; ?>" class="table-actions link-view" title="Editar Solicitação"><i class="mdi mdi mdi-pencil"></i></a>
                                                    <a href="detalhar_pagamento.php?id_pagamento=<?php echo $id; ?>&<?php echo $url; ?>" class="table-actions link-view" title="Visualizar Informações"><i class="mdi mdi mdi-account-search"></i></a>

                                                    <?php if ($row['situacao'] == 'Em Análise' || $row['situacao'] == 'Rejeitado') { ?>
                                                        <a href="formulario_inclusao_alteracao_pagamento.php?id=1&id_pagamento=<?php echo $id; ?>&<?php echo $url; ?>" class="table-actions link-view" title="Alterar Pagamento"><i class="mdi mdi mdi-content-save-edit"></i></a>
                                                    <?php } ?>

                                                    <?php if ($row['situacao'] == 'Em Análise') {
                                                        if (empty($row['usuario_financeiro_responsavel'])) { ?>
                                                            <button data-id-pagamento="<?= $id ?>"
                                                                data-url="<?= $url ?>"
                                                                class="table-actions link-view excluir-btn"
                                                                title="Excluir Pagamento"
                                                                onclick="openModal(this)">
                                                                <i class="mdi mdi-delete-forever"></i>
                                                            </button>
                                                    <?php }
                                                    } ?>


                                                    <?php if ($row['situacao'] !== 'Em Análise' && $row['situacao'] !== 'Rejeitado') { ?>
                                                        <span class="table-actions link-view" title="Alterar Pagamento" disabled><i class="mdi mdi mdi-content-save-edit text-secondary"></i></span> <?php }  ?>

                                                    <?php if (!empty($row['usuario_financeiro_responsavel'])) { ?>
                                                        <button class="table-actions link-view excluir-btn" title="Excluir Pagamento" disabled>
                                                            <i class="mdi mdi-delete-forever text-secondary"></i>
                                                        </button>
                                                    <?php } ?>

                                                </div>
                                            </td>
                                        </tr>
                                <?php
                                    }
                                }

                                if (!$hasResults) {
                                    echo "<tr><td colspan='10' class='text-center'>Sem resultado para a consulta</td></tr>";
                                }
                                ?>
                            </tbody>
                        </table>
                    </div>
            </div>
        <?php  }
        ?>
        </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 Solicitação selecionado?</h2>

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

    <!-- 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://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">



    <script>
        $(document).ready(function() {

            // Inicializa o DataTable
            $('#datatable-buttons').DataTable({
                "language": {
                    "url": "https://cdn.datatables.net/plug-ins/1.10.21/i18n/Portuguese-Brasil.json"
                },
                "columnDefs": [{
                    "type": "currency-br", // Usa o tipo de coluna personalizado 'currency-br' para ordenação
                    "targets": [4] // Aplica o tipo de coluna personalizado à coluna de índice 4
                }],
                "order": [
                    [4, "desc"] // Ordena pela coluna de índice 4 descendentemente
                ],
                "ordering": true,
                "lengthMenu": [
                    [10, 25, 50, 100, -1],
                    [10, 25, 50, 100, "Todos"]
                ],
                "buttons": [
                    // 'copyHtml5',
                    'excelHtml5',
                    // 'csvHtml5',
                    //'pdfHtml5'
                ],
                //"dom": 'lBfrtip',
                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");
            }, 40);

            setTimeout(function() {
                $("#datatable-buttons_length").children("label").css("font-size", "15px");
            }, 40);
        });
    </script>
    <style>
        #datatable-buttons_length label,
        #datatable-buttons_info {
            margin: 0 !important;
            padding: 0 !important;
            align-items: center;
        }
    </style>
    <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);
        });


        function openModal(button) {
            event.preventDefault();
            var idPagamento = button.getAttribute('data-id-pagamento');
            var url = button.getAttribute('data-url');

            document.getElementById('id_pagamento_delete').value = idPagamento;
            document.getElementById('url').value = url.trim();

            document.getElementById('myModal').style.display = 'block';
        }

        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>
        function showModal(title, message) {
            const modal = new bootstrap.Modal(document.getElementById('exampleModal'));
            const modalTitle = document.querySelector('.modal-title');
            const modalBody = document.querySelector('.modal-body p');

            modalTitle.textContent = title;
            modalBody.textContent = message;

            modal.show();
        }

        function validarCampo(id) {
            let campo = document.getElementById(id);
            return campo.value.trim(); // Retorna o valor do campo após remover espaços em branco
        }

        function adicionarClasseErro(campo) {
            campo.classList.add('is-invalido');
        }

        function removerClasseErro(campo) {
            campo.classList.remove('is-invalido');
        }

        function validarFormulario() {
            let dataInicial = validarCampo("dataInicial");
            let dataFinal = validarCampo("dataFinal");


            let dataInicialCampo = document.getElementById("dataInicial");
            let dataFinalCampo = document.getElementById("dataFinal");

            if (dataInicial === '' || dataFinal === '') {
                adicionarClasseErro(dataInicialCampo);
                adicionarClasseErro(dataFinalCampo);
                showModal('Informação', 'As datas de inicial e final são obrigatórias para realizar a consulta.');
                return false;
            }

            if (new Date(dataInicial) > new Date(dataFinal)) {
                adicionarClasseErro(dataInicialCampo);
                adicionarClasseErro(dataFinalCampo);
                showModal('Erro', 'A data inicial não pode ser maior que a data final.');
                return false;
            }

            if (!algumPreenchido) {
                showModal('Informação', 'Pelo menos um campo deve estar preenchido para realizar a consulta.');
                return false;
            }

            return true;
        }

        function verificarDatas() {
            let dataInicialCampo = document.getElementById("dataInicial");
            let dataFinalCampo = document.getElementById("dataFinal");
            let dataInicial = dataInicialCampo.value.trim();
            let dataFinal = dataFinalCampo.value.trim();

            if (dataInicial !== '' && dataFinal !== '') {
                removerClasseErro(dataInicialCampo);
                removerClasseErro(dataFinalCampo);

                if (new Date(dataInicial) > new Date(dataFinal)) {
                    adicionarClasseErro(dataInicialCampo);
                    adicionarClasseErro(dataFinalCampo);
                    // showModal('Erro', 'A data inicial não pode ser maior que a data final.');
                }
            }
        }

        document.getElementById("dataInicial").addEventListener('input', function() {
            removerClasseErro(this);
            verificarDatas();
        });

        document.getElementById("dataFinal").addEventListener('input', function() {
            removerClasseErro(this);
            verificarDatas();
        });
    </script>
    <style>
        .situacao-liberado {
            color: #28a745;

        }

        .situacao-em-analise {
            color: rgba(216, 145, 13, 0.61);

        }

        .situacao-rejeitado {
            color: #dc3545;

        }

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

</html>