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

$consulta_bb = new ConsultaBancoDeDados();
$filtros = new Filtros();
$consulta_vendedores = new Vendedores();
$configuracoes = new Configuracoes();
$nome_para_vendedores = $configuracoes->get_nomeclatura_vendedor(true);
$nome_para_vendedor = $configuracoes->get_nomeclatura_vendedor();
$filiais = $consulta_bb->get_filiais();
$vendedores = $consulta_bb->get_vendedores();

$exibirManipulado = true;
$exibirRevenda = true;
$exibirMarcaPropria = true;

$DataInicial = isset($_GET['DataInicial']) ? $_GET['DataInicial'] : date('Y-m-01');
$DataFinal = isset($_GET['DataFinal']) ? $_GET['DataFinal'] : date('Y-m-t');
$filial = isset($_GET['filial']) ? $_GET['filial'] : 'Todos';
$tipoSelecionado = isset($_GET['tipo']) ? $_GET['tipo'] : 'Todos';

$ids = array_column($filiais, 'ID');
$ids_filial = implode(',', $ids);
$filial = !empty($_GET['filial']) ? $_GET['filial'] : $ids_filial;
$DataInicial = $_GET['DataInicial'] ?? null;
$DataFinal = $_GET['DataFinal'] ?? null;
$tipoSelecionado = $_GET['tipo'] ?? null;
$vendedor = isset($_GET[lcfirst($nome_para_vendedor)]) && $_GET[lcfirst($nome_para_vendedor)] !== 'Todos' ? $_GET[lcfirst($nome_para_vendedor)] : null;
$vendedor = $vendedor ? implode(',', array_map(function ($item) {
    return "'" . addslashes(trim($item)) . "'";
}, explode(',', $vendedor))) : 'NULL';

$query_string = http_build_query([
    'filial' => $filial,
    'nomeVendedor' => $vendedor,
    'DataInicial' => $DataInicial,
    'DataFinal' => $DataFinal,
    'tipo' => $tipoSelecionado,
    'form_submitted' => '1'
]);

if (isset($_GET['form_submitted']) && $_GET['form_submitted'] == '1') {
    $vendedores_detalhado = [];

    // Busca dados baseado no tipo selecionado
    if ($tipoSelecionado == 'Todos' || $tipoSelecionado == 'Manipulado') {
        $manipulados = $consulta_vendedores->getDetalhesManipulado($DataInicial, $DataFinal, $filial, $vendedor);
        foreach ($manipulados as $item) {
            $vendedores_detalhado[] = [
                'CDCON' => $item['CDCON'],
                'NRCPM' => $item['NRCPM'],
                'nome_vendedor' => $item['NOMEFUN'],
                'valor_manipulado' => $item['VALOR_MANIPULADO'],
                'valor_revenda' => 0,
                'valor_marca_propria' => 0,
                'TOTAL' => $item['VALOR_MANIPULADO']
            ];
        }
    }

    if ($tipoSelecionado == 'Todos' || $tipoSelecionado == 'Revenda') {
        $revendas = $consulta_vendedores->getDetalhesRevenda($DataInicial, $DataFinal, $filial, $vendedor);
        foreach ($revendas as $item) {
            $vendedores_detalhado[] = [
                'CDCON' => $item['CDCON'],
                'NRCPM' => $item['NRCPM'],
                'nome_vendedor' => $item['NOMEFUN'],
                'valor_manipulado' => 0,
                'valor_revenda' => $item['VALOR_REVENDA'],
                'valor_marca_propria' => 0,
                'TOTAL' => $item['VALOR_REVENDA']
            ];
        }
    }

    if ($tipoSelecionado == 'Todos' || $tipoSelecionado == 'Marca Propria') {
        $marcas = $consulta_vendedores->getDetalhesMarca($DataInicial, $DataFinal, $filial, $vendedor);
        foreach ($marcas as $item) {
            $vendedores_detalhado[] = [
                'CDCON' => $item['CDCON'],
                'NRCPM' => $item['NRCPM'],
                'nome_vendedor' => $item['NOMEFUN'],
                'valor_manipulado' => 0,
                'valor_revenda' => 0,
                'valor_marca_propria' => $item['VALOR_MARCA_PROPRIA'],
                'TOTAL' => $item['VALOR_MARCA_PROPRIA']
            ];
        }
    }
    //var_dump($manipulados);
    
  
}
?>

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

<head>
    <link rel="icon" href="/mandareceita/pages/configuracoes/logo-sm.png">
    <link rel="shortcut icon" href="/mandareceita/pages/configuracoes/logo-sm.png">
</head>

<?php $pageTitle = 'Vendedores Detalhado - Validação';
include('../header.php'); ?>

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

<body>
    <!-- ============================================================== -->
    <!-- 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">Vendedores Detalhado</h4>
                    </div>

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

                    <div class="col-12 mb-4">
                        <form method="get" action="" onsubmit="return validarFormulario()">
                            <div class="form-row mb-3">
                                <?php
                                echo $filtros->filtroCheckBox('filial', $filiais, null);
                                echo $filtros->filtroCheckBox(lcfirst($nome_para_vendedor), $vendedores);

                                ?>

                                <div class="col-sm-6 col-md-4 col-lg-2">
                                    <div class="form-group" style="margin-top: 9px;">
                                        <label>Tipo</label>
                                        <select class="form-control" name="tipo">
                                            <option value="Todos" <?php echo ($tipoSelecionado == "Todos") ? 'selected' : ''; ?>>Todos</option>
                                            <option value="Manipulado" <?php echo ($tipoSelecionado == "Manipulado") ? 'selected' : ''; ?>>Manipulado</option>
                                            <option value="Marca Propria" <?php echo ($tipoSelecionado == "Marca Propria") ? 'selected' : ''; ?>>Marca Própria</option>
                                            <option value="Revenda" <?php echo ($tipoSelecionado == "Revenda") ? 'selected' : ''; ?>>Revenda</option>
                                        </select>
                                    </div>
                                </div>
                                <div class="col-sm-6 col-md-4 col-lg-2">
                                    <div class="form-group" style="margin-top: 9px;">
                                        <label>Data Inicial</label>
                                        <input type="date" class="form-control" name="DataInicial" value="<?php echo $DataInicial; ?>">
                                    </div>
                                </div>
                                <div class="col-sm-6 col-md-4 col-lg-2">
                                    <div class="form-group" style="margin-top: 9px;">
                                        <label>Data Final</label>
                                        <input type="date" class="form-control" name="DataFinal" value="<?php echo $DataFinal; ?>">
                                    </div>
                                </div>
                                <input type="hidden" name="form_submitted" value="1" />
                                <div class="col-12 text-right">
                                    <a href="index.php" class="btn btn-warning mr-2"><i class="mdi mdi-plus"></i> Limpar</a>
                                    <button name="pesquisar" type="submit" class="btn btn-primary"><i class="mdi mdi-magnify"></i> Pesquisar</button>
                                </div>
                        </form>
                    </div>

                    <?php
                    $totalValor = 0;

                    if (isset($_GET['form_submitted']) && $_GET['form_submitted'] == '1') { ?>
                        <div class="col-12">
                            <div style="display: flex;  align-items: center;">
                                <h6>Lista de Dados</h6>
                            </div>
                            <table id="datatable-buttons" class="table table-bordered table-hover table-sm" style="width:100%;">
                                <thead>
                                    <tr class="text-center">
                                        <th>Filial</th>
                                        <th>Nome Vendedor</th>
                                        <th>Número Requisição</th>
                                        <th>Manipulado</th>
                                        <th>Número Cupom</th>
                                        <th>Revenda</th>
                                        <th>Marca Própria</th>
                                        <th>Valor</th>
                                    </tr>
                                </thead>
                                <tbody>
                                    <?php
                                    $totalValor = 0;
                                    $totalValorManipulado = 0;
                                    $totalValorRevenda = 0;
                                    $totalValorMarcaPropria = 0;

                                    if (!empty($vendedores_detalhado)) {
                                        foreach ($vendedores_detalhado as $row) {
                                            $codigoFilial = $row['CDCON'] ?? '-';
                                            $nome_vendedor = $row['nome_vendedor'] ?? '-';
                                            $numeroRequisicao = ($tipoSelecionado == 'Manipulado' || ($tipoSelecionado == 'Todos' && $row['valor_manipulado'] > 0)) ? ($row['NRCPM'] ?? '-') : '-';
                                            $manipulado = $row['valor_manipulado'] ?? 0; // ajuste conforme nome do campo correto
                                            // Mostra número do cupom apenas para revenda e marca própria
                                            $numeroCupom = ($tipoSelecionado == 'Revenda' || $tipoSelecionado == 'Marca Propria' || ($tipoSelecionado == 'Todos' && ($row['valor_revenda'] > 0 || $row['valor_marca_propria'] > 0))) ? ($row['NRCPM'] ?? '-') : '-';
                                            $manipulado = $row['valor_manipulado'] ?? 0; // ajuste conforme nome do campo correto
                                            $revenda = $row['valor_revenda'] ?? 0; // ajuste conforme nome do campo correto
                                            $marcaPropria = $row['valor_marca_propria'] ?? 0; // ajuste conforme nome do campo correto
                                            $valorTotal = $row['TOTAL'] ?? 0; // ajuste conforme nome do campo correto

                                            echo '<tr>';
                                            echo '<td class="text-center">' . htmlspecialchars($codigoFilial) . '</td>';
                                            echo '<td class="text-center">' . htmlspecialchars($nome_vendedor) . '</td>';
                                            echo '<td class="text-center">' . htmlspecialchars($numeroRequisicao) . '</td>';
                                            echo '<td class="text-right">R$ ' . number_format((float)$manipulado, 2, ',', '.') . '</td>';
                                            echo '<td class="text-center">' . htmlspecialchars($numeroCupom) . '</td>';
                                            echo '<td class="text-right">R$ ' . number_format((float)$revenda, 2, ',', '.') . '</td>';
                                            echo '<td class="text-right">R$ ' . number_format((float)$marcaPropria, 2, ',', '.') . '</td>';
                                            echo '<td class="text-right">R$ ' . number_format((float)$valorTotal, 2, ',', '.') . '</td>';
                                            echo '</tr>';

                                            $totalValor += floatval($valorTotal);
                                            $totalValorManipulado += floatval($manipulado);
                                            $totalValorRevenda += floatval($revenda);
                                            $totalValorMarcaPropria += floatval($marcaPropria);
                                        }
                                    } else {
                                        echo "<tr><td colspan='5' class='text-center'>Sem resultado para a consulta</td></tr>";
                                    }
                                    ?>
                                </tbody>
                            </table>
                            <?php if (!empty($vendedores_detalhado)) :  ?>
                                <div class="col-md-12">
                                    <h4 style="margin-left: -14px;">Total Manipulado: R$ <?php echo number_format($totalValorManipulado, 2, ',', '.'); ?></h4>
                                </div>
                                <div class="col-md-12">
                                    <h4 style="margin-left: -14px;">Total de Revenda: R$ <?php echo number_format($totalValorRevenda, 2, ',', '.'); ?></h4>
                                </div>
                                <div class="col-md-12">
                                    <h4 style="margin-left: -14px;">Total de Marca Própria: R$ <?php echo number_format($totalValorMarcaPropria, 2, ',', '.'); ?></h4>
                                </div>
                            <?php endif  ?>
                        </div>
                    <?php } ?>
                    <div class="col-md-12">
                        <h4 style="margin-left: -2px;">Total Geral: R$ <?php echo number_format($totalValor, 2, ',', '.'); ?></h4>
                    </div>
                </div>
            </div>
        </div>

        <?php include('../footer.php'); ?>
        <?php include('../mensagens_modais.php'); ?>
        <?php
        $nome_para_vendedor = lcfirst($nome_para_vendedor);
        ?>
        <script src="../../../assets/js/vendor.min.js"></script>
        <script src="../../../assets/libs/jquery-knob/jquery.knob.min.js"></script>
        <script src="../../../assets/js/app.min.js"></script>
        <script src="../geral/javascript.js"></script>
        <script src="../../../assets/js/funcoes.js"></script>

        <!-- third party js -->
        <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">
        <link href="https://cdnjs.cloudflare.com/ajax/libs/select2/4.1.0-beta.1/css/select2.min.css" rel="stylesheet" />
        <script src="https://cdnjs.cloudflare.com/ajax/libs/select2/4.1.0-beta.1/js/select2.min.js"></script>
        <link href="../../../assets/css/style.css" rel="stylesheet" />
        <select style="display: none;" id="saida" name="saida">
            <option value="Todos" selected></option>
        </select>
        <script type="text/javascript">
            initDropdownFilter('filial');
            initDropdownFilter('<?= $nome_para_vendedor ?>', false, 'saida');

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

        <script>
            $(document).ready(function() {
                var table = $('#datatable-buttons').DataTable({
                    "language": {
                        "url": "https://cdn.datatables.net/plug-ins/1.10.21/i18n/Portuguese-Brasil.json"
                    },
                    "lengthMenu": [
                        [10, 25, 50, 100, -1],
                        [10, 25, 50, 100, "Todos"]
                    ],
                    "buttons": [
                        'excelHtml5'
                    ],
                    //"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>>',
                    "order": [
                        [0, 'asc']
                    ], // Ordenar pela primeira coluna em ordem ascendente
                    "columnDefs": [{
                        "targets": 0, // Aplica ordenação apenas na primeira coluna (você pode ajustar o índice)
                        "orderable": true // Torna a coluna ordenável
                    }]
                });
            });
        </script>

        <script>
            $(document).ready(function() {
                // Função para preencher o combo de filiais com Select2
                function carregarFiliais(cidade) {
                    console.log("Cidade selecionada: " + cidade); // Adiciona log para depuração

                    $.ajax({
                        url: 'get_filiais.php', // Verifique se o caminho está correto
                        type: 'POST',
                        dataType: 'json',
                        data: {
                            cidade: cidade
                        },
                        success: function(data) {
                            console.log("Filiais carregadas: ", data); // Adiciona log para depuração

                            $('#filial').empty().select2({
                                placeholder: 'Selecione uma ou mais filiais',
                                data: data.map(function(item) {
                                    return {
                                        id: item.id,
                                        text: item.nome_filial
                                    };
                                })
                            });

                            // Recuperar filiais selecionadas do localStorage, se existirem
                            var filiaisSelecionadas = JSON.parse(localStorage.getItem('filiaisSelecionadas')) || [];

                            // Selecionar as filiais recuperadas
                            $('#filial').val(filiaisSelecionadas).trigger('change');
                        },

                    });
                }

                // Ao carregar a página, chama a função para preencher o combo de filiais com base na cidade inicial
                carregarFiliais($('#cidade').val());

                // Ao alterar a cidade, chama a função para preencher o combo de filiais com base na nova cidade selecionada
                $('#cidade').change(function() {
                    const cidade = $(this).val();
                    carregarFiliais(cidade);
                });

                // Ao selecionar ou deselecionar uma filial, atualiza o localStorage com as filiais selecionadas
                $('#filial').on('change', function() {
                    var filiaisSelecionadas = $(this).val() || [];
                    localStorage.setItem('filiaisSelecionadas', JSON.stringify(filiaisSelecionadas));
                });

                // Checkbox para selecionar todas as filiais
                $("#select_todos").click(function() {
                    if ($(this).is(':checked')) {
                        $('#filial option').prop('selected', true);
                        $('#filial').trigger('change');
                    } else {
                        $('#filial option').prop('selected', false);
                        $('#filial').trigger('change');
                    }
                });
            });
        </script>

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

</html>