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

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

// if (isset($_GET['status']) && $_GET['status'] === 'sucesso' && isset($_GET['acao']) && $_GET['acao'] === 'excluir') {
//     gerarLog(
//         4, // tipo de log (exclusão)
//         $basePath, // id do módulo
//         $_SESSION['CodUsuario'],
//         $_SESSION['NomeUsuario']
//     );
// }

// if (isset($_GET['status']) && $_GET['status'] === 'sucesso' && isset($_GET['acao']) && $_GET['acao'] === 'criar') {
//     gerarLog(
//         2, // tipo de log (criação)
//         $basePath, // id do módulo
//         $_SESSION['CodUsuario'],
//         $_SESSION['NomeUsuario']
//     );
// }

// if (isset($_GET['status']) && $_GET['status'] === 'sucesso' && isset($_GET['acao']) && $_GET['acao'] === 'atualizar') {
//     gerarLog(
//         3, // tipo de log (atualização)
//         $basePath, // id do módulo
//         $_SESSION['CodUsuario'],
//         $_SESSION['NomeUsuario']
//     );
// }

$consulta_bb = new ConsultaBancoDeDados();
$filtros = new Filtros();
$configuracoes = new Configuracoes();
$consulta_painel_metas = new CunsultasPainelMetas();

$meu_periodo = $configuracoes->getPeriodo();
$reprensentantes = $consulta_bb->get_representante();
$nome_para_vendedores = 'Vendedores';
$nome_para_vendedor = "Vendedor";
//$painel_visitadores = $configuracoes->getPainelVisitadores();
$filiaisf = $consulta_bb->get_filiais();

$ano = $_GET['ano'] ?? null;
$mes = $_GET['mes'] ?? null;
$semana = $_GET['semana'] ?? null;

$ids = array_column($filiaisf, '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_ids_array = array_values($filial);
$filial = implode(',', $filial_ids_array);

$filial_busca_array = [];
foreach ($filial_ids_array as $id) {
    $filial_busca_array[] = $id; // Garante que busca pelo ID interno se existir
    foreach ($filiaisf as $f) {
        if ($f['ID'] == $id) {
            $cod_fc = !empty($f['codigo_fc']) ? $f['codigo_fc'] : (!empty($f['CODIGO_FC']) ? $f['CODIGO_FC'] : $f['ID']);
            $filial_busca_array[] = $cod_fc; // Garante que busca pelo código Prime
        }
    }
}
$filial_busca = implode(',', array_unique($filial_busca_array));

$codigo_vendedor = $_GET['vendedor'] ?? null;
$visitador = $_GET['visitador'] ?? null;
$periodo = $_GET['periodo'] ?? null;
$visitador = $visitador ? implode(',', array_map(function ($item) {
    return "'" . addslashes(trim($item)) . "'";
}, explode(',', $visitador))) : 'NULL';
$sqlFiltro = '';

require '../../querys/query-filiais.php';
$filiais = new Filiais($connectionmysql);

////////////////////////////////////////////////////////////////

require '../../querys/query-metas.php';
$Metas = new Metas($connectionmysql);

if (isset($_GET['tipo_meta']) and $_GET['tipo_meta'] == 3) {
    $_GET['vendedor'] = '';
}

if (!empty($_GET['tipo_meta']) && $_GET['tipo_meta'] !== 'Todos') {
    $sqlFiltro .= " and tipo_meta = {$_GET['tipo_meta']} ";
}
if (!empty($_GET['semana']) && $_GET['semana'] !== 'Todos' && $_GET['semana'] !== 'Selecione') {
    $sqlFiltro .= " and semana IS NOT NULL and semana = {$_GET['semana']} ";
}

if (!empty($_GET['vendedor']) && $_GET['vendedor'] !== 'Todos') {
    $sqlFiltro .= " and codigo_vendedor = {$_GET['vendedor']} ";
}

// if (!empty($_GET['visitador']) && $_GET['visitador'] !== 'Todos') {
//     $sqlFiltro .= " and codigo_visitador IN ({$visitador}) ";
// }

if (isset($_GET['form_submit']) && $_GET['form_submit'] === '1') {

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

    $listagemMetasDefinidas = $consulta_painel_metas->listarMetasDefinidasIndex('', $filial_busca, $ano, $mes, $sqlFiltro, $meu_periodo);
}


$Metas->deletaMetaDefinida($connectionmysql);

$url = http_build_query([
    'vendedor' => $_GET['vendedor'] ?? null,
    'filial' => $_GET['filial'] ?? null,
    'ano' => $_GET['ano'] ?? null,
    'mes' => $_GET['mes'] ?? null,
    'semana' => $_GET['semana'] ?? null,

    'visitador' => $_GET['visitador'] ?? null,
    'tipo_meta' => $_GET['tipo_meta'] ?? null,
    'periodo' => $periodo ?? null,
    'form_submit' => isset($_GET['form_submit']) ? $_GET['form_submit'] : '',
]);
//print_r($listagemMetasDefinidas);

////////////////////////////////////////////////////////////////

if (isset($_SESSION['message'])) {
    echo "<script>alert('" . $_SESSION['message'] . "');</script>";
    unset($_SESSION['message']); // Limpa a mensagem após exibição
}

////////////////////////////////////////////////////////////////////

require '../../querys/query-vendedores.php';

$vendedores = new Vendedores($connection);
$hasResults = false;
if (!empty($listagemMetasDefinidas)) {
    $hasResults = true;
}

?>

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

<head>
    <link rel="icon" href="\KPI\pages/configuracoes/logo-sm.png">
    <link rel="shortcut icon" href="\KPI\pages/configuracoes/logo-sm.png">
    <link rel="stylesheet" href="../../configuracao/modalexcluir.css">

    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <!-- Bootstrap CSS -->
    <link href="https://cdnjs.cloudflare.com/ajax/libs/select2/4.0.13/css/select2.min.css" rel="stylesheet" />
    <script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.6.0/jquery.min.js"></script>
    <script src="https://cdnjs.cloudflare.com/ajax/libs/select2/4.0.13/js/select2.min.js"></script>
    <!--Material Icon -->
    <link rel="stylesheet" href="https://cdn.materialdesignicons.com/5.4.55/css/materialdesignicons.min.css">
</head>

<style>
    .select2-container--default .select2-selection--single {
        border: 1px solid #ced4da;
        border-radius: 0.25rem;
        height: 38px;
    }

    .select2-container--default .select2-selection--single .select2-selection__rendered {
        line-height: 36px;
        /* Ajusta o alinhamento vertical */
    }

    .select2-container--default .select2-selection--single .select2-selection__arrow {
        height: 36px;
        /* Ajusta a altura do botão do select */
    }

    .select2-container--default .select2-selection--single .select2-selection__placeholder {
        color: #6c757d;
        /* Cor do placeholder */
    }



    .select2-dropdown {
        max-height: 200px !important;
        /* Altura máxima do dropdown */
        overflow-y: auto !important;
        /* Ativa rolagem */
    }
</style>

<?php $pageTitle = 'Configuração de Metas - Manda Receita';
include('../header.php');
include('../menu.php');
?>


<body>
    <!-- ============================================================== -->
    <!-- Start Page Content here -->
    <!-- ============================================================== -->

    <!-- Conteúdo Principal -->
    <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">Consultar Metas</h4>
                    </div>

                    <div class="col-6 text-right">
                        <?php if (isset($_GET['form_submit']) && $_GET['form_submit'] == '1' && !empty($listagemMetasDefinidas)) { ?>
                            <a href="definir-metas.php?id=1&<?= $url ?>" class="btn btn-light" alt="Define Metas" title="Define Metas"><i class="mdi mdi-plus"></i>Atualizar metas</a>
                        <?php } ?>
                        <a href="definir-metas.php" class="btn btn-light" alt="Define Metas" title="Define Metas"><i class="mdi mdi-plus"></i> Definir nova metas</a>
                    </div>
                </div>

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

                <div class="col-12 mb-4">
                    <form method="get" enctype="multipart/form-data" onsubmit="return validarFormulario()">
                        <div class="col-12">
                            <div class="form-row">
                                <?php
                                echo $filtros->filtroFilialSimples($filialselect, $filiaisf, false, null, false);
                                echo $filtros->filtroAno($ano);
                                echo $filtros->filtroMes($mes);
                                ?>

                                <div class="form-group col-6 col-md-4 col-lg-2">
                                    <label class="col-form-label">Tipo de meta</label>
                                    <select name="tipo_meta" id="tipo_meta" class="form-control">
                                        <option value="">Selecione</option>
                                        <option value="2" <?php if (isset($_GET['tipo_meta']) && $_GET['tipo_meta'] == 2) {
                                                                echo 'selected';
                                                            } ?>><?= $nome_para_vendedores ?></option>
                                        <option value="3" <?php if (isset($_GET['tipo_meta']) && $_GET['tipo_meta'] == 3) {
                                                                echo 'selected';
                                                            } ?>>Loja</option>

                                    </select>
                                </div>

                                <?php
                                if ($meu_periodo == 'Quinzena') : ?>
                                    <div class="col-6 col-md-4 col-lg-2" id="periodo">
                                        <label for="periodo" class="col-form-label">Período:</label>
                                        <select name="periodo" class="form-control">
                                            <option value="mes" <?= isset($periodo) && $periodo == "mes" ? "selected" : ""; ?>>Mês</option>
                                            <option value="1" <?= isset($periodo) && $periodo == "1" ? "selected" : ""; ?>>1° Quinzena</option>
                                            <option value="2" <?= isset($periodo) && $periodo == "2" ? "selected" : ""; ?>>2° Quinzena</option>
                                        </select>
                                    </div>
                                <?php elseif ($meu_periodo == 'Semana') : ?>
                                    <div id="drop_semana" class="form-group col-6 col-md-4 col-lg-2 ">
                                        <!-- Aqui vai o select gerado pelo PHP -->
                                    </div>
                                <?php endif ?>

                                <div class="form-group col-6 col-md-4 col-lg-2" id="vendedorContainer" multiple style="display: none;">
                                    <label class="col-form-label"><?= $nome_para_vendedor ?></label>
                                    <br>
                                    <select name="vendedor" class="form-control" id="vendedorSelect" style="width: 100%;">
                                        <option value="Todos">Todos</option>
                                        <!-- Adicione opções de vendedores aqui -->
                                    </select>
                                </div>

                                <?php
                                //echo $filtros->filtroCheckBox('visitador', $reprensentantes);
                                ?>


                                <div id="x" class="col-12 col-md-8 col-lg-12 d-flex mt-3 " style="align-items:center;justify-content: end;">
                                    <div>
                                        <a href="definir-metas.php" class="btn btn-warning mr-2"><i class="mdi mdi-plus"></i> Limpar</a>
                                    </div>
                                    <div>
                                        <button type="submit" class="btn btn-primary"><i class="mdi mdi-magnify"></i> Pesquisar</button>
                                    </div>
                                </div>

                            </div>

                        </div>
                        <script>
                            document.addEventListener('DOMContentLoaded', function() {
                                var tipoMetaSelect = document.getElementById('tipo_meta');
                                var vendedorContainer = document.getElementById('vendedorContainer');
                                var periodo = document.getElementById('periodo'); // pode não existir
                                var minhaColuna = document.getElementById('x');

                                function ajustarLayout() {
                                    var tipoValue = tipoMetaSelect.value;

                                    // Mostrar ou ocultar Vendedor
                                    vendedorContainer.style.display = (tipoValue == '2') ? 'block' : 'none';

                                    // Mostrar ou ocultar Período (só se existir no DOM)
                                    if (periodo) {
                                        periodo.style.display = (tipoValue == '4') ? 'none' : 'block';
                                    }

                                    // Nenhum visível → ocupa linha inteira
                                    var nenhumVisivel = (
                                        vendedorContainer.style.display === 'none' &&
                                        (!periodo || periodo.style.display === 'none') // trata caso não exista
                                    );

                                    if (!nenhumVisivel) {
                                        minhaColuna.className = "col-6 col-md-4 col-lg-12 d-flex mt-3 d-flex mt-3";
                                        minhaColuna.style.alignItems = "center";
                                        minhaColuna.style.justifyContent = "end";
                                    } else {
                                        minhaColuna.className = "col-12 col-md-8 col-lg-4 d-flex mt-3 ";
                                        minhaColuna.style.alignItems = "center";
                                        minhaColuna.style.justifyContent = "end";
                                    }
                                }

                                tipoMetaSelect.addEventListener('change', ajustarLayout);

                                // Executa no carregamento
                                ajustarLayout();
                            });
                        </script>



                        <input type="hidden" name="form_submit" value="1">
                    </form>
                </div>

                <?php if (isset($_GET['form_submit']) and $_GET['form_submit'] && !empty($listagemMetasDefinidas)) { ?>
                    <div class="row">
                        <div class="col-6 text-left mb-4">
                            <h4 class="page-title">Lista de metas definidas</h4>
                        </div>
                        <div class="col-12" style="margin-top: -15px;">
                            <hr>
                        </div>
                    </div>
                <?php } ?>


                <?php if (isset($_GET['form_submit']) and $_GET['form_submit'] == 1 and isset($_GET['tipo_meta']) and $_GET['tipo_meta'] == 3) { ?>
                    <div class="col-12">
                        <?php
                        // Array auxiliar para armazenar os dados agrupados
                        $dadosAgrupados = [];

                        foreach ($listagemMetasDefinidas as $item) {
                            $chave = $item['codigo_filial'] . '-' . $item['mes'] . '-' . $item['ano'];

                            if (!isset($dadosAgrupados[$chave])) {
                                $nomeDaFilial = "Filial não encontrada";
                                $id_mysql_filial = $item['codigo_filial'];
                                foreach ($filiaisf as $f) {
                                    $id_interno = $f['ID'] ?? $f['id'];
                                    $cod_fc = !empty($f['codigo_fc']) ? $f['codigo_fc'] : (!empty($f['CODIGO_FC']) ? $f['CODIGO_FC'] : $id_interno);
                                    if ($item['codigo_filial'] == $id_interno || $item['codigo_filial'] == $cod_fc) {
                                        $nomeDaFilial = $f['NOME'] ?? $f['nome_filial'] ?? $f['NOME_FILIAL'] ?? 'N/A';
                                        $id_mysql_filial = $id_interno;
                                        break;
                                    }
                                }
                                $dadosAgrupados[$chave] = [
                                    'ids' => [],
                                    'filial' => $nomeDaFilial,
                                    'id_mysql' => $id_mysql_filial,
                                    'codigo_meta' => $item['codigo_filial'],
                                    'ano' => $item['ano'],
                                    'mes' => $item['mes'],
                                    'mes_ano' => str_pad($item['mes'], 2, '0', STR_PAD_LEFT) . '/' . $item['ano'],
                                    'manipulado' => 0,
                                    'revenda' => 0,
                                    'marca' => 0,
                                    'manipulado2' => 0,
                                    'revenda2' => 0,
                                    'marca2' => 0
                                ];
                            }

                            // Adiciona o ID de forma segura para não dar erro
                            $current_id = $item['ids'] ?? $item['id'] ?? null;
                            if ($current_id && !in_array($current_id, $dadosAgrupados[$chave]['ids'])) {
                                $dadosAgrupados[$chave]['ids'][] = $current_id;
                            }

                            // Adiciona o ID no array de IDs
                            $dadosAgrupados[$chave]['ids'][] = $item['ids'];
                            // Classifica o valor conforme o tipo de meta
                            $dadosAgrupados[$chave]['manipulado'] += $item['manipulado'];
                            $dadosAgrupados[$chave]['revenda'] += $item['revenda'];
                            $dadosAgrupados[$chave]['marca'] += $item['marca_propria'];
                            $dadosAgrupados[$chave]['manipulado2'] += $item['manipulado2'];
                            $dadosAgrupados[$chave]['revenda2'] += $item['revenda2'];
                            $dadosAgrupados[$chave]['marca2'] +=  $item['marca_propria2'];
                        }
                        //var_dump($dadosAgrupados);
                        ?>

                        <table class="table table-striped table-bordered dt-responsive nowrap">
                            <thead>
                                <tr align="center" nowrap="nowrap">
                                    <th>Filial</th>
                                    <th>Mês/Ano</th>
                                    <th>Manipulado <?= $periodo == 1 ? '1°' : ($periodo == 2 ? '2°' : '') ?></th>
                                    <th>Revenda <?= $periodo == 1 ? '1°' : ($periodo == 2 ? '2°' : '') ?></th>
                                    <th>Marca Própria <?= $periodo == 1 ? '1°' : ($periodo == 2 ? '2°' : '') ?></th>
                                    <th>Ações</th>
                                </tr>
                            </thead>
                            <tbody>
                                <?php foreach ($dadosAgrupados as $chave => $dados) {
                                ?>
                                    <tr align="center" nowrap="nowrap">
                                        <td><?php echo $dados['filial']; ?></td>
                                        <td><?php echo $dados['mes_ano']; ?></td>
                                        <?php
                                        if ($periodo == 1) { ?>
                                            <td><?php echo number_format($dados['manipulado'], 2, ',', '.'); ?></td>
                                            <td><?php echo number_format($dados['revenda'], 2, ',', '.'); ?></td>
                                            <td><?php echo number_format($dados['marca'], 2, ',', '.'); ?></td>
                                        <?php } elseif ($periodo == '2') { ?>
                                            <td><?php echo number_format($dados['manipulado2'], 2, ',', '.'); ?></td>
                                            <td><?php echo number_format($dados['revenda2'], 2, ',', '.'); ?></td>
                                            <td><?php echo number_format($dados['marca2'], 2, ',', '.'); ?></td>
                                        <?php } else { ?>
                                            <td><?php echo number_format(($dados['manipulado'] + $dados['manipulado2']), 2, ',', '.'); ?></td>
                                            <td><?php echo number_format(($dados['revenda'] + $dados['revenda2']), 2, ',', '.'); ?></td>
                                            <td><?php echo number_format(($dados['marca'] + $dados['marca2']), 2, ',', '.'); ?></td>
                                        <?php } ?>


                                        <td>
                                            <?php
                                            $url_params = [
                                                'vendedor' => '',
                                                'filial' => $dados['codigo_meta'],
                                                'ano' => $dados['ano'],
                                                'mes' => $dados['mes'],
                                                'semana' => $_GET['semana'] ?? null,
                                                'visitador' => $_GET['visitador'] ?? null,
                                                'tipo_meta' => $_GET['tipo_meta'] ?? null,
                                                'periodo' => $periodo ?? null,
                                                'form_submit' => '1',
                                                'ids' => implode(',', array_filter($dados['ids']))
                                            ];
                                            $link_edit = "definir-metas.php?id=1&" . http_build_query($url_params);
                                            ?>
                                            <a href="<?php echo $link_edit; ?>" class="table-actions link-view" title="Alterar Metas">
                                                <i class="mdi mdi-account-edit"></i>
                                            </a>
                                            <button
                                                data-id="<?php echo htmlspecialchars(implode(',', $dados['ids'])); ?>"
                                                data-url="<?php echo htmlspecialchars($url); ?>"
                                                class="table-actions link-view excluir-btn"
                                                title="Excluir Meta">
                                                <i class="mdi mdi-delete-forever"></i>
                                            </button>

                                        </td>
                                    </tr>
                                <?php
                                } ?>
                                <?php if (!$hasResults) {
                                    echo "<tr>
                                                <td colspan='6' class='text-center'>Sem resultado para a consulta</td>
                                            </tr>";
                                }
                                ?>
                            </tbody>
                        </table>

                    </div>
                <?php } elseif (isset($_GET['form_submit']) and $_GET['form_submit'] == 1 and isset($_GET['tipo_meta']) and $_GET['tipo_meta'] == 2) { ?>
                    <?php
                    // Criando um array para armazenar os valores agrupados por vendedor, mês e ano
                    $dadosAgrupados = [];

                    foreach ($listagemMetasDefinidas as $item) {
                        $chave = $item['codigo_vendedor'] . '_' . $item['mes'] . '_' . $item['ano'];

                        if (!isset($dadosAgrupados[$chave])) {
                            $nomeDaFilial = "Filial não encontrada";
                            $id_mysql_filial = $item['codigo_filial'];
                            foreach ($filiaisf as $f) {
                                $id_interno = $f['ID'] ?? $f['id'];
                                $cod_fc = !empty($f['codigo_fc']) ? $f['codigo_fc'] : (!empty($f['CODIGO_FC']) ? $f['CODIGO_FC'] : $id_interno);
                                if ($item['codigo_filial'] == $id_interno || $item['codigo_filial'] == $cod_fc) {
                                    $nomeDaFilial = $f['NOME'] ?? $f['nome_filial'] ?? $f['NOME_FILIAL'] ?? 'N/A';
                                    $id_mysql_filial = $id_interno;
                                    break;
                                }
                            }
                            $dadosAgrupados[$chave] = [
                                'ids' => [],
                                'codigo_vendedor' => $item['codigo_vendedor'],
                                'nome_vendedor' => '',
                                'mes' => $item['mes'],
                                'ano' => $item['ano'],
                                'filial' => $nomeDaFilial,
                                'id_mysql' => $id_mysql_filial,
                                'codigo_meta' => $item['codigo_filial'],
                                'tipo_meta' => ($item['tipo_meta'] == 2) ? 'Vendedores' : (($item['tipo_meta'] == 3) ? 'Loja' : (($item['tipo_meta'] == 4) ? 'Visitadores' : 'Desconhecido')),
                                'manipulado' => 0,
                                'revenda' => 0,
                                'marca_propria' => 0,
                                'manipulado2' => 0,
                                'revenda2' => 0,
                                'marca_propria2' => 0
                            ];
                        }
                        
                        $current_id = $item['ids'] ?? $item['id'] ?? null;
                        if ($current_id && !in_array($current_id, $dadosAgrupados[$chave]['ids'])) {
                            $dadosAgrupados[$chave]['ids'][] = $current_id;
                        }

                        $dadosAgrupados[$chave]['ids'][] = $item['ids'];
                        // Preenchendo os valores de acordo com o código da meta
                        $dadosAgrupados[$chave]['manipulado'] += $item['manipulado'];
                        $dadosAgrupados[$chave]['revenda'] += $item['revenda'];
                        $dadosAgrupados[$chave]['marca_propria'] += $item['marca_propria'];
                        $dadosAgrupados[$chave]['manipulado2'] += $item['manipulado2'];
                        $dadosAgrupados[$chave]['revenda2'] += $item['revenda2'];
                        $dadosAgrupados[$chave]['marca_propria2'] +=  $item['marca_propria2'];

                        // Pegando o nome do vendedor
                        $listagemVendedor = $vendedores->listarVendedores($item['codigo_filial'], $item['codigo_vendedor']);
                        if (is_array($listagemVendedor) && !empty($listagemVendedor[0]['NOME_VENDEDOR'])) {
                            $dadosAgrupados[$chave]['nome_vendedor'] = htmlspecialchars($listagemVendedor[0]['NOME_VENDEDOR']);
                        } else {
                            $dadosAgrupados[$chave]['nome_vendedor'] = "Não encontrado";
                        }
                    }
                    ?>

                    <table class="table table-striped table-bordered dt-responsive nowrap">
                        <tbody>
                            <tr align="center" nowrap="nowrap">
                                <th>Filial</th>
                                <!-- <th >Tipo de Meta</th> -->
                                <th><?= $nome_para_vendedor ?></th>
                                <th>Mês/Ano</th>
                                <th>Manipulado <?= $periodo == 1 ? '1°' : ($periodo == 2 ? '2°' : '') ?></th>
                                <th>Revenda <?= $periodo == 1 ? '1°' : ($periodo == 2 ? '2°' : '') ?></th>
                                <th>Marca Própria <?= $periodo == 1 ? '1°' : ($periodo == 2 ? '2°' : '') ?></th>
                                <th style="text-align: center">Ações</th>
                            </tr>

                            <?php foreach ($dadosAgrupados as $item) {
                            ?>
                                <tr align="center" nowrap="nowrap">
                                    <td><?php echo $item['filial']; ?></td>
                                    <!-- <td ><?php //echo $item['tipo_meta']; 
                                                ?></td> -->
                                    <td><?php echo $item['codigo_vendedor'] . ' - ' . $item['nome_vendedor']; ?></td>
                                    <td><?php echo str_pad($item['mes'], 2, '0', STR_PAD_LEFT) . '/' . $item['ano']; ?></td>
                                    <?php
                                    if ($periodo == 1) { ?>
                                        <td><?php echo number_format($item['manipulado'], 2, ',', '.'); ?></td>
                                        <td><?php echo number_format($item['revenda'], 2, ',', '.'); ?></td>
                                        <td><?php echo number_format($item['marca_propria'], 2, ',', '.'); ?></td>
                                    <?php } elseif ($periodo == '2') { ?>
                                        <td><?php echo number_format($item['manipulado2'], 2, ',', '.'); ?></td>
                                        <td><?php echo number_format($item['revenda2'], 2, ',', '.'); ?></td>
                                        <td><?php echo number_format($item['marca_propria2'], 2, ',', '.'); ?></td>
                                    <?php } else { ?>
                                        <td><?php echo number_format(($item['manipulado'] + $item['manipulado2']), 2, ',', '.'); ?></td>
                                        <td><?php echo number_format(($item['revenda'] + $item['revenda2']), 2, ',', '.'); ?></td>
                                        <td><?php echo number_format(($item['marca_propria'] + $item['marca_propria2']), 2, ',', '.'); ?></td>
                                    <?php } ?>
                                    <td>
                                        <?php
                                        $url_params = [
                                            'vendedor' => $item['codigo_vendedor'],
                                            'filial' => $item['codigo_meta'],
                                            'ano' => $item['ano'],
                                            'mes' => $item['mes'],
                                            'semana' => $_GET['semana'] ?? null,
                                            'visitador' => $_GET['visitador'] ?? null,
                                            'tipo_meta' => $_GET['tipo_meta'] ?? null,
                                            'periodo' => $periodo ?? null,
                                            'form_submit' => '1',
                                            'ids' => implode(',', array_filter($item['ids']))
                                        ];
                                        $link_edit = "definir-metas.php?id=1&" . http_build_query($url_params);
                                        ?>
                                        <a href="<?php echo $link_edit; ?>" class="table-actions link-view" title="Alterar Metas">
                                            <i class="mdi mdi-account-edit"></i>
                                        </a>
                                        <button
                                            data-id="<?php echo htmlspecialchars(implode(',', $item['ids'])); ?>"
                                            data-url="<?php echo htmlspecialchars($url); ?>"
                                            class="table-actions link-view excluir-btn"
                                            title="Excluir Meta">
                                            <i class="mdi mdi-delete-forever"></i>
                                        </button>
                                    </td>
                                </tr>
                            <?php
                            } ?>
                            <?php if (!$hasResults) {
                                echo "<tr>
                                                <td colspan='7' class='text-center'>Sem resultado para a consulta</td>
                                            </tr>";
                            }
                            ?>
                        </tbody>
                    </table>

                <?php } else ?>
            </div>
        </div>
    </div>

    <!-- Bootstrap JS -->
    <?php

    include('../footer.php');
    include('../../geral/mensagens_modais.php');
    $nome_para_vendedor = lcfirst($nome_para_vendedor);

    ?>

    <!-- Vendor js -->
    <script src="../../../assets/js/vendor.min.js"></script>


    <!-- App js-->
    <script src="../../geral/javascript.js"></script>
    <script src="../../../assets/js/funcoes.js"></script>

    <!-- <div id="myModal" class="modal" style="display:none;">
        <div class="modal-content">
            <span class="close" onclick="closeModal()">&times;</span>
            <h2>Deseja realmente excluir esta Meta ?</h2> -->

            <!-- Formulário de confirmação -->
            <form id="formExclusao" method="post" action="excluir_meta.php">
                <input type="hidden" id="ids" name="ids" value="">
                <input type="hidden" id="url" name="url" value="">
            </form>

            <!-- <form id="formExclusao" method="post" action="excluir_meta.php">
                <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> -->

    <form id="formExclusaoMeta" action="excluir_meta.php" method="post" style="display: none;">
        <input type="hidden" name="ids" id="del-ids">
        <input type="hidden" name="url" id="del-url">
        <input type="hidden" name="confirmacao" value="sim">
    </form>

    <script src="/kpi/assets/js/modais.js"></script>
    <script src="../../../assets/js/modal-helper.js"></script>
    <script>
        // function openModal(button) {
        //     event.preventDefault(); // Evita recarregar a página

        //     // Obtenha os valores dos atributos data-id e data-url
        //     var id = button.getAttribute('data-id');
        //     var url = button.getAttribute('data-url');

        //     // Defina os valores nos campos ocultos do formulário
        //     document.getElementById('ids').value = id;
        //     document.getElementById('url').value = url.trim();

        //     // Exiba o modal
        //     document.getElementById('myModal').style.display = 'block';
        // }

        // function closeModal() {
        //     // Feche o modal
        //     document.getElementById('myModal').style.display = 'none';
        // }

        $(document).ready(function() {
            // Uso de delegação de evento (.on) para funcionar mesmo se usar paginação na tabela
            $(document).on('click', '.excluir-btn', function(e) {
                e.preventDefault();

                // 1. Pega os dados do botão clicado
                var btn = $(this);
                var ids = btn.data('id');
                var url = btn.data('url');

                // 2. Abre o ModalHelper
                ModalHelper.openConfirmationModal({
                    title: 'Confirmar Exclusão',
                    message: 'Tem certeza que deseja excluir esta meta? Esta ação não pode ser desfeita.',
                    confirmText: 'Sim, excluir',
                    cancelText: 'Cancelar',
                    onConfirm: () => {
                        // 3. Preenche o formulário oculto
                        $('#del-ids').val(ids);
                        $('#del-url').val(url);

                        // 4. Feedback e Envio
                        ModalHelper.showToast('Excluindo meta...', '#3b82f6');
                        
                        // IMPORTANTE: Envia o formulário que criamos no passo 2
                        document.getElementById('formExclusaoMeta').submit();
                    },
                    onCancel: () => {
                        ModalHelper.showToast('Exclusão cancelada', '#f97316');
                    }
                });
            });
        });

        function confirmarExclusao(id_departamento) {
            const deleteForm = document.getElementById('delete-form');
            const idDepartamento = document.getElementById('delete-id-departamento');

            idDepartamento.value = id_departamento;

            ModalHelper.openConfirmationModal({
                title: 'Confirmar Exclusão',
                message: `Tem certeza que deseja excluir o departamento? Esta ação não pode ser desfeita.`,
                confirmText: 'Sim, excluir',
                cancelText: 'Cancelar',
                onConfirm() {
                    deleteForm.submit();
                },
                onCancel() {
                    ModalHelper.showToast('Exclusão cancelada', '#f97316');
                }
            });
        }

        // function confirmarExclusao() {
        //     // Envie o formulário
        //     document.getElementById('formExclusao').submit();
        //     closeModal();
        // }
        // document.getElementById('tipo_meta').addEventListener('change', function() {
        //     var tipoMeta = this.value;
        //     if (tipoMeta == '4') {
        //         initDropdownFilter('visitador', false, 'filial');
        //     }
        // });


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

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

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

            if (id === "ano" && valor === "Todos") {
                valido = false;
            }

            console.log(campo)
            console.log(valido)
            if (!valido) {

                campo.classList.add('is-invalido');
                // exibirMensagemErro(mensagem, id);
            } else {
                campo.classList.remove('is-invalido');
                //removerMensagemErro(id);
            }

            return valido;
        }


        function validarFormulario() {
            let camposValidos = true;
            let campos = document.querySelectorAll('.form-group input, .form-group select');


            campos.forEach(function(campo) {
                // Ignorar campos que já foram validados como checkbox
                if (
                    ["visitadorselecionados", "visitador_input", "vendedorSelect"].includes(campo.id)
                ) {
                    return;
                }

                if (campo.type === "checkbox") {
                    return;
                }

                if (campo.closest(".form-group").style.display !== "none") {
                    if (!validarCampo(campo.id)) {
                        camposValidos = false;
                    }
                }
            });

            //console.log(camposValidos);
            return camposValidos;
        }



        $(document).ready(function() {
            function atualizarVendedores() {
                var filial = $('#filial').val();

                $.ajax({
                    url: 'atualizar_vendedores.php',
                    type: 'GET',
                    data: {
                        filial: filial
                    },
                    dataType: 'json',
                    success: function(response) {
                        let vendedorSelect = $('#vendedorSelect');

                        // Salva os valores atualmente selecionados
                        let valoresSelecionados = vendedorSelect.val() || [];

                        // Remove as opções atuais
                        vendedorSelect.empty();
                        vendedorSelect.append('<option value="Todos">Todos</option>');

                        if (response.length > 0) {
                            $.each(response, function(index, vendedor) {
                                let option = $('<option>', {
                                    value: vendedor.COD_VENDEDOR,
                                    text: vendedor.COD_VENDEDOR + ' - ' + vendedor.NOME_VENDEDOR
                                });

                                vendedorSelect.append(option);
                            });

                            // Restaura os valores selecionados anteriormente
                            vendedorSelect.val(valoresSelecionados);
                        } else {
                            vendedorSelect.append('<option value="">Nenhum vendedor encontrado</option>');
                        }

                        // Reaplica o Select2
                        vendedorSelect.select2();
                    },
                    error: function(xhr, status, error) {
                        console.log('Erro na requisição AJAX:', error);
                    }
                });
            }

            // Carrega vendedores ao iniciar a página
            atualizarVendedores();

            // Atualiza vendedores ao mudar a filial, apenas se não contiver ","
            $('#filial').on('change', function() {
                let valorFilial = $(this).val();
                if (!valorFilial.includes(",")) {
                    atualizarVendedores();
                }
            });
        });


        $('#vendedorSelect').select2({
            placeholder: "Selecione um vendedor",
            allowClear: true,
            maximumSelectionLength: 5,
            width: '100%',
            dropdownAutoWidth: true
        });

        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);
        });
    </script>
    <script>
        function carregarSemanas() {
            const ano = document.getElementById('ano').value;
            const mes = document.getElementById('mes').value;
            const semana = <?php echo isset($semana) ? json_encode($semana) : '""'; ?>;

            if (ano && mes) {
                const xhr = new XMLHttpRequest();
                xhr.open('GET', '../../configuracao/filtros.php?ano=' + ano + '&mes=' + mes + '&se=1&semana_selecionada&semana=' + semana, true);
                xhr.onreadystatechange = function() {
                    if (xhr.readyState === 4 && xhr.status === 200) {
                        document.getElementById('drop_semana').innerHTML = xhr.responseText;
                    }
                };
                xhr.send();
            }
        }
        // Event listeners para atualizar o filtro em tempo real
        document.getElementById('ano').addEventListener('change', carregarSemanas);
        document.getElementById('mes').addEventListener('change', carregarSemanas);
        window.addEventListener('DOMContentLoaded', carregarSemanas);

        document.addEventListener("DOMContentLoaded", function() {
            var tipoMetaSelect = document.getElementById('tipo_meta');
            var vendedoresInput = document.getElementById('<?= $nome_para_vendedor ?>Container');
            var periodo = document.getElementById('periodo');
            var drop_semana = document.getElementById('drop_semana');
            var minhaColuna = document.getElementById('x');
            // Esconde tudo ao carregar
            if (vendedoresInput) vendedoresInput.style.display = 'none';
            //if (visitadoresInput) visitadoresInput.style.display = 'none';

            function ajustarLayout() {
                var tipoMeta = tipoMetaSelect ? tipoMetaSelect.value : null;

                // Regras de exibição
                if (tipoMeta === '2' && vendedoresInput) {
                    vendedoresInput.style.display = 'block';
                } else if (vendedoresInput) {
                    vendedoresInput.style.display = 'none';
                }

                if (tipoMeta === '4') {
                    //if (visitadoresInput) visitadoresInput.style.display = 'block';
                    if (periodo) periodo.style.display = 'none';
                    if (drop_semana) drop_semana.style.display = 'none';
                } else {
                    //if (visitadoresInput) visitadoresInput.style.display = 'none';
                    if (periodo) periodo.style.display = 'block';
                    if (drop_semana) drop_semana.style.display = 'block';
                }

                // Verifica se NENHUM filtro está visível
                var nenhumVisivel =
                    (!vendedoresInput || vendedoresInput.style.display === 'none') &&
                    //(!visitadoresInput || visitadoresInput.style.display === 'none') &&
                    (!drop_semana || drop_semana.style.display === 'none') &&
                    (!periodo || periodo.style.display === 'none');

                if (nenhumVisivel) {
                    // quando existe algum filtro visível
                    minhaColuna.className = "col-12 col-md-8 col-lg-4 text-right d-flex mt-3";
                    minhaColuna.style.alignItems = "center";
                    minhaColuna.style.justifyContent = "end";
                } else {
                    // quando não há filtros → expande a linha inteira
                    minhaColuna.className = "col-6 col-md-4 col-lg-12 text-right d-flex mt-0";
                    minhaColuna.style.alignItems = "center";
                    minhaColuna.style.justifyContent = "end";
                }
            }

            if (tipoMetaSelect) {
                tipoMetaSelect.addEventListener('change', ajustarLayout);
            }

            // Executa ao carregar
            ajustarLayout();
        });


        document.addEventListener('DOMContentLoaded', function() {
            const tipoMeta = document.getElementById('tipo_meta');

            tipoMeta.addEventListener('change', function() {
                // console.log('Change disparado');
            });

            tipoMeta.dispatchEvent(new Event('change'));
        });
    </script>
    <style>
        .is-invalido {
            box-shadow: 0 0 5px red !important;
        }
    </style>
</body>

</html>