<?php
require '../conexao/conexao.php';
//require '../sessao.php';
require '../conexao/acesso.php';
require '../configuacoes.php';
require '../configuracao/consulta_banco_dados.php';
require '../configuracao/filtros.php';
require '../logs/gera-log.php';

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


function getBadgeClass($status)
{
    $lowerStatus = strtolower($status);

    if (strpos($lowerStatus, 'rejeitado') !== false) {
        return 'badge-danger';
    } elseif (strpos($lowerStatus, 'aprovado') !== false) {
        return 'badge-success';
    } else {
        return 'badge-secondary';  // ou qualquer outra classe padrão
    }
}

$nomeVendedor = $_GET['nomeVendedor'] ?? null;
$nomeCliente = $_GET['nomeCliente'] ?? null;
$DataInicial = $_GET['DataInicial'] ?? null;
$DataFinal = $_GET['DataFinal'] ?? null;
$situacao = $_GET['situacao'] ?? null;
$ids = array_column($filiais, 'ID');
$ids_filial = implode(',', $ids);
$ids_filial_destino = implode(',', $ids);
if (isset($_GET['filial']) && is_array($_GET['filial'])) {
    $filial = implode(',', $_GET['filial']);
} else {
    $filial = !empty($_GET['filial']) ? $_GET['filial'] : $ids_filial;
}
// $filial = !empty($_GET['filial']) ? $_GET['filial'] : $ids_filial;
//$filial = !empty($_GET['filial_de_origem']) ? $_GET['filial_de_origem'] : $ids_filial;
$filialDestino = !empty($_GET['filial_de_destino']) ? $_GET['filial_de_destino'] : $ids_filial_destino;
$tipoSelecionado = $_GET['tipo'] ?? null;

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


if (isset($_GET['pesquisar'])) {

    $nome_relatorio = 'Médicos';

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

    // Obtendo os parâmetros
    //$nome_consulta = 'fun.nomefun';



    $sql_base = "select
  A1.cadastro_lj as FILIAL ,
  A1.codigo as REQUISICAO ,
  A1.AVIADA_DT AS DATA_ENTRADA,
  SUM(CAST(COALESCE(A1.VALORVENDA_DESC,0) AS NUMERIC(18,2))) AS VALOR_TOTAL,
  CL.nomecliente as NOME_CLIENTE,
  A1.CODIGO_FUNCIONARIO_COMISSAO AS cod_vendedor,
  FU.NOMEFUNCIONARIO as NOME_VENDEDOR
  from ATENDIMENTO_A1 A1
  inner join CLIENTE CL ON A1.CODIGO_CLIENTE = CL.CODIGO
  inner join MEDICO ME ON A1.CODIGO_MEDICO = ME.CODIGO
  inner join FUNCIONARIO FU ON A1.CODIGO_FUNCIONARIO_COMISSAO = FU.CODIGO
  where A1.DESCARTE_CF IS NULL  AND A1.STATUS_MOV = -1 AND A1.ENTREGUE_CF IS NULL AND ((A1.ENTREGA_DTHR_CLI < CURRENT_TIMESTAMP or A1.ENTREGA_DTHR_CLI is null)) 
  AND A1.aviada_lj = 1
  AND A1.CANCELAMENTO_CF is null
  AND A1.PAGAR_COMISSAO_FUNCIONARIO = -1
  ";

    if ($DataInicial && $DataFinal) {
        $DataInicial = date('Y-m-d', strtotime($DataInicial));
        $DataFinal = date('Y-m-d', strtotime($DataFinal));
        $sql_base .= " AND CAST(a1.AVIADA_DT as date) between '$DataInicial' and '$DataFinal'"; 
    }

    if ($filial && $filial != "Todos") {
        $sql_base .= " AND A1.CADASTRO_LJ IN ($filial)";
    }
	
	if ($tipoSelecionado && $tipoSelecionado != "Todos") {
        $sql_base .= " AND A1.TIPO_ATENDIMENTO IN ($tipoSelecionado)";
    }

    // if ($filialDestino && $filialDestino != "Todos") {
    //     $sql_base .= " AND rec.CDFILD IN ($filialDestino)";
    // }

    if ($nomeVendedor && $nomeVendedor != "Todos") {
        // $nomeVendedor = strtoupper($nomeVendedor);
        // $sql_base .= " AND UPPER(FU.nomefuncionario) LIKE '%" . $nomeVendedor . "%'";
        $sql_base .= " AND FU.CODIGO = " . intval($nomeVendedor);
    }

    if ($nomeCliente && $nomeCliente != "Todos") {
        // $nomeCliente = strtoupper($nomeCliente);
        // $sql_base .= " AND UPPER(CL.nomecliente) LIKE '%" . $nomeCliente . "%'";
        $sql_base .= " AND A1.CODIGO_CLIENTE = " . intval($nomeCliente);
    }

    $sql_base .= "  GROUP BY A1.cadastro_lj,
  A1.codigo,
  A1.AVIADA_DT,
  CL.nomecliente,
  A1.CODIGO_FUNCIONARIO_COMISSAO,
  FU.NOMEFUNCIONARIO";



    $result = ibase_query($connection, $sql_base);


    if (!$result) {
        die('Erro na consulta: ' . ibase_errmsg());
    }

    function firebird_escape_string($value)
    {
        return str_replace(["'", "\""], ["''", "\"\""], $value);
    }
}
?>


<!DOCTYPE html>
<html lang="pt-br">
<?php
$pageTitle = "Vendas em Aberto"; // 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">Vendas em Aberto</h4>
                    </div>

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

                    <div class="col-12">
                        <form id="indexForm" method="get" action="" onsubmit="return validarFormulario()">
                            <div class="form-row mb-3">

                                <?php
                                // Exibe o filtro de cidade
                                //echo $filtros->filtroFilialSimples($filial, $filiais);
                                echo $filtros->filtroCheckBox('filial', $filiais, null, false, false);

                                // Exibe o filtro de cidade
                                //echo $filtros->filtroFilialSimples($filial, $filiais);
                                //echo $filtros->filtroCheckBox('filial de Destino', $filiais, null);

                                ?>

                                <div class="col-6 col-md-4 col-lg-2">
                                    <label for="tipo" class="col-form-label">Tipo</label>
                                    <select id="tipo" name="tipo" class="form-control">
                                        <?php
                                        // Exibe a opção "Todos"
                                        echo '<option value="Todos"' . ($tipoSelecionado == "Todos" ? ' selected' : '') . '>Todos</option>';

                                        // Exibe a opção "Manipulado"
                                        echo '<option value="1"' . ($tipoSelecionado == "1" ? ' selected' : '') . '>Manipulado</option>';

                                        // Exibe a opção "Revenda"
                                        echo '<option value="2"' . ($tipoSelecionado == "2" ? ' selected' : '') . '>Revenda</option>';
                                        ?>
                                    </select>
                                </div>

                                <div class="col-6 col-md-4 col-lg-2">
                                    <label for="DataInicial" class="col-form-label">Data Inicial</label>
                                    <input type="date" id="DataInicial" name="DataInicial" class="form-control" value="<?php echo isset($DataInicial) ? $DataInicial : ''; ?>">
                                </div>
                                <div class="col-6 col-md-4 col-lg-2">
                                    <label for="DataFinal" class="col-form-label">Data Final</label>
                                    <input type="date" id="DataFinal" name="DataFinal" class="form-control" value="<?php echo isset($DataFinal) ? $DataFinal : ''; ?>">
                                </div>
                                <div class="form-group col-6 col-md-4 col-lg-2">
                                    <label for="nomeVendedor" class="col-form-label"><?= $nome_para_vendedor ?></label>
                                    <!-- <input type="text" class="form-control" id="nomeVendedor" name="nomeVendedor" placeholder="Digite o Nome do <?= $nome_para_vendedor ?>" value="<?php echo isset($nomeVendedor) ? htmlspecialchars($nomeVendedor) : ''; ?>"> -->
                                    <select class="form-control" id="nomeVendedor" name="nomeVendedor">
                                        <option value="Todos">Todos</option>
                                        <?php
                                        // Carrega os vendedores diretamente pelo PHP no load da página
                                        if (!empty($filial) && $filial != "Todos") {
                                            $sql_vend = "SELECT CODIGO, NOMEFUNCIONARIO FROM FUNCIONARIO WHERE CADASTRO_LJ IN ($filial) ORDER BY NOMEFUNCIONARIO";
                                        } else {
                                            $sql_vend = "SELECT CODIGO, NOMEFUNCIONARIO FROM FUNCIONARIO ORDER BY NOMEFUNCIONARIO";
                                        }

                                        $res_vend = ibase_query($connection, $sql_vend);
                                        if ($res_vend) {
                                            while ($row_v = ibase_fetch_assoc($res_vend)) {
                                                $cod = trim($row_v['CODIGO']); // trim para evitar espaços em branco do banco
                                                $selecionado = (isset($_GET['nomeVendedor']) && $_GET['nomeVendedor'] == $cod) ? 'selected' : '';
                                                echo '<option value="' . $cod . '" ' . $selecionado . '>' . htmlspecialchars($row_v['NOMEFUNCIONARIO']) . '</option>';
                                            }
                                        }
                                        ?>
                                    </select>
                                </div>
                                <div class="form-group col-6 col-md-4 col-lg-2">
                                    <label for="nomeCliente" class="col-form-label">Cliente</label>
                                    <!-- <input type="text" class="form-control" id="nomeCliente" name="nomeCliente" placeholder="Digite o Nome do  Cliente" value="<?php echo isset($nomeCliente) ? htmlspecialchars($nomeCliente) : ''; ?>"> -->
                                    <select class="form-control" id="nomeCliente" name="nomeCliente">
                                        <option value="Todos">Todos</option>
                                        <?php
                                        // Carrega os clientes diretamente pelo PHP se já houver vendedor selecionado na URL
                                        if (!empty($_GET['nomeVendedor']) && $_GET['nomeVendedor'] != "Todos") {
                                            $vend_id = intval($_GET['nomeVendedor']);
                                            $sql_cli = "SELECT DISTINCT CL.CODIGO, CL.nomecliente AS NOME_CLIENTE
                                                        FROM CLIENTE CL 
                                                        INNER JOIN ATENDIMENTO_A1 A1 ON CL.CODIGO = A1.CODIGO_CLIENTE 
                                                        WHERE A1.CODIGO_FUNCIONARIO_COMISSAO = $vend_id 
                                                        ORDER BY CL.nomecliente";
                                                        
                                            $res_cli = ibase_query($connection, $sql_cli);
                                            if ($res_cli) {
                                                while ($row_c = ibase_fetch_assoc($res_cli)) {
                                                    $cod_cli = trim($row_c['CODIGO']);
                                                    $selecionado_cli = (isset($_GET['nomeCliente']) && $_GET['nomeCliente'] == $cod_cli) ? 'selected' : '';
                                                    echo '<option value="' . $cod_cli . '" ' . $selecionado_cli . '>' . htmlspecialchars($row_c['NOME_CLIENTE']) . '</option>';
                                                }
                                            }
                                        }
                                        ?>
                                    </select>
                                </div>
                                <div class="col-6 col-md-4 col-lg-12 d-flex mt-3 mt-lg-0" style="align-items:center;justify-content: end;">
                                    <div>
                                        <a href="index.php" class="btn btn-warning mr-2"><i class="mdi mdi-plus"></i> Limpar</a>
                                    </div>
                                    <div>
                                        <button name="pesquisar" type="submit" class="btn btn-primary"><i class="mdi mdi-magnify"></i> Pesquisar</button>
                                    </div>
                                </div>


                        </form>
                    </div>
                </div>
                <?php if (isset($_GET['pesquisar'])) { ?>
                    <div class="col-12">
                        <h6>Lista de Requisições </h6>

                        <div class="row">
                            <div class="col-12">
                                <table id="minhaTabela" class="table table-bordered table-hover table-sm" style="width:100%;">
                                    <thead class="thead-light">
                                        <tr>
                                            <?php
                                            // Verificar se $filial é diferente de "Todos" para exibir a coluna "Filial"

                                            echo '<th>Filial</th>';

                                            ?>
                                            <th>Requisição</th>
                                            <th>Data</th>
                                            <th>Valor Total</th>
                                            <!-- <th>Valor Parcial</th>
                                        <th>Saldo</th> -->
                                            <th>Nome Cliente</th>
                                            <th>Cod <?= $nome_para_vendedor ?></th>
                                            <th>Nome <?= $nome_para_vendedor ?></th>
                                            <!-- <th>Ações</th> -->
                                        </tr>
                                    </thead>
                                    <tbody>
                                        <?php
                                        $hasResults = false;
                                        $totalValorRecebido = 0; // Inicializa o totalizador
                                        if (isset($result)) {
                                            while ($row = ibase_fetch_assoc($result)) {
                                                // $row['NOME_CLIENTE'] = mb_convert_encoding($row['NOME_CLIENTE'], 'UTF-8', 'ISO-8859-1');
                                                // $row['NOME_VENDEDOR'] = mb_convert_encoding($row['NOME_VENDEDOR'], 'UTF-8', 'ISO-8859-1');

                                                $hasResults = true; // Indica que encontrou ao menos um resultado

                                                echo '<tr>';

                                                echo '<td>' . htmlspecialchars($row['FILIAL']) . '</td>';

                                                echo '<td>' . htmlspecialchars($row['REQUISICAO']) . '</td>';
                                                echo '<th class="text-center" scope="row" data-order="' . $row['DATA_ENTRADA'] . '">' . ($row['DATA_ENTRADA'] !== null ? date('d/m/Y', strtotime($row['DATA_ENTRADA'])) : 'N/A') . '</th>';
                                                echo '<td style="font-size: 16px" data-order="' . $row['VALOR_TOTAL'] . '">';
                                                echo '<span class="badge badge-danger" style="font-size: 0.92em;">';
                                                echo ' <b> R$ ' . number_format($row['VALOR_TOTAL'], 2, ',', '.');
                                                echo '</b></span>';
                                                echo '</td>';
                                                // echo '<td data-order="' . $row['VALOR_RECEBIDO_PARCIAL'] . '">' . ($row['VALOR_RECEBIDO_PARCIAL'] ? 'R$ ' . number_format($row['VALOR_RECEBIDO_PARCIAL'], 2, ',', '.') : 'N/A') . '</td>';
                                                // echo '<td data-order="' . $row['VALOR_SALDO'] . '">' . ($row['VALOR_SALDO'] ? 'R$ ' . number_format($row['VALOR_SALDO'], 2, ',', '.') : 'N/A') . '</td>';
                                                echo '<th class="col-3" scope="row">' . ($row['NOME_CLIENTE'] !== null ? $row['NOME_CLIENTE'] : 'N/A') . '</th>';
                                                echo '<th class="col-1" scope="row">' . ($row['COD_VENDEDOR'] !== null ? $row['COD_VENDEDOR'] : 'N/A') . '</th>';
                                                echo '<th class="col-3" scope="row">' . ($row['NOME_VENDEDOR'] !== null ? $row['NOME_VENDEDOR'] : 'N/A') . '</th>';

                                                //  echo '<td>' . '<a href="detalhar_medico.php?id_medico=' . urlencode($row['COD_MEDICO']) . '&dtinicial=' . urlencode($DataInicial) . '&dtfinal=' . urlencode($DataFinal) . '&filial=' . urlencode($filial) . '" class="table-actions link-view">';
                                                // echo '<i class="mdi mdi-account-search"></i>';
                                                // echo '</a>' . '</td>';

                                                echo '</tr>';

                                                // Atualiza o totalizador
                                                $totalValorRecebido += floatval($row['VALOR_TOTAL']);
                                            }
                                        }
                                        if (!$hasResults) {
                                            echo "<tr><td colspan='7' class='text-center'>Sem resultado para a consulta</td></tr>";
                                        }
                                        ?>
                                    </tbody>
                                </table>

                                <!-- Adiciona a linha com o totalizador -->
                                <div class="row">
                                    <div class="col-md-12">
                                        <h4>Valor Total em aberto: R$ <?php echo number_format($totalValorRecebido, 2, ',', '.'); ?></h4>
                                    </div>
                                </div>




                            </div>

                        </div>


                    </div>
                <?php } ?>
            </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>

</body>

</html>


<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://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 type="text/javascript">
    initDropdownFilter('filial');
    //initDropdownFilter('filial_de_destino');

    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>
    .is-invalido {
        box-shadow: 0 0 5px red !important;
    }
</style>

<script>
    $(document).ready(function() {
        // Define um tipo de coluna personalizado para valores monetários
        $.fn.dataTable.ext.type.order['currency-br-pre'] = function(d) {
            // Converte a string monetária formatada em um número float para ordenação correta
            return parseFloat(d.replace(/[^\d,-]/g, '').replace(',', '.'));
        };

        // Inicializa o DataTable
        $('#minhaTabela').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": [
                [3, "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: '<"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>>', // "dom": 'lBfrtip'
        });

        $(document).on('change', "input[name='filial[]']", function() {
            let filiaisSelecionadas = [];
            $("input[name='filial[]']:checked").each(function() {
                filiaisSelecionadas.push($(this).val());
            });
            
            let filiaisStr = filiaisSelecionadas.join(',');

            $.ajax({
                url: 'get_vendedores.php',
                type: 'POST',
                data: { filiais: filiaisStr },
                beforeSend: function() {
                    $('#nomeVendedor').html('<option value="Todos">Carregando...</option>');
                    $('#nomeCliente').html('<option value="Todos">Todos</option>'); // Zera o cliente
                },
                success: function(response) {
                    $('#nomeVendedor').html(response);
                }
            });
        });

        $(document).on('change', '#nomeVendedor', function() {
            let vendedorId = $(this).val();

            if (!vendedorId || vendedorId === 'Todos') {
                $('#nomeCliente').html('<option value="Todos">Todos</option>');
                return;
            }

            $.ajax({
                url: 'get_clientes.php',
                type: 'POST',
                data: { vendedor: vendedorId },
                beforeSend: function() {
                    $('#nomeCliente').html('<option value="Todos">Carregando...</option>');
                },
                success: function(response) {
                    $('#nomeCliente').html(response);
                }
            });
        });

    });
</script>
<style>
    #minhaTabela_length label,
    #minhaTabela_info {
        margin: 0 !important;
        padding: 0 !important;
        align-items: center;
    }
</style>