<?php
require '../../conexao/conexao.php';
//require '../sessao.php';
require '../../conexao/acesso.php';
require '../../configuacoes.php';
require '../../configuracao/get_config.php';
require '../../querys/query-metas.php';
require '../../configuracao/consulta_banco_dados.php';
require '../../configuracao/filtros.php';
require '../../querys/query-filiais.php';
require './consulta_bd.php';
require '../../querys/query-configuracao-metas.php';

if (isset($_GET['id']) && $_GET['id'] == '1') {
    $pageTitle = "Atualizar Metas";
} else {
    $pageTitle = "Definir Metas";
}

// Instancia a classe de consulta_bb ao banco de dados
$consulta_bb = new ConsultaBancoDeDados();
$filtros = new Filtros();
$configuracoes = new Configuracoes();
$consulta_painel_metas = new CunsultasPainelMetas();
//$filiais = new Filiais($connectionmysql);
$Metas = new Metas($connectionmysql);
//$Metas->DefineMeta($connectionmysql);
$ConfiguracaoMetas = new ConfiguracaoMetas($connectionmysql);


$meu_periodo = $Metas->get_periodo();
$nome_para_vendedores = 'Vendedores';
$nome_para_vendedor = "Vendedor";
$reprensentantes = $consulta_bb->get_representante();
// $vendedores = $consulta_bb->get_vendedores();
//$painel_visitadores = $configuracoes->getPainelVisitadores();
$filiais = $consulta_bb->get_filiais();

// 1. Buscamos TODOS os vendedores sem filtro, pois o JavaScript vai filtrar na tela
$vendedores = $consulta_bb->get_vendedores();
$mapa_filiais = [];
foreach ($filiais as $f) {
    // Pega o código do Firebird (Prime)
    $cod_prime = !empty($f['codigo_fc']) ? $f['codigo_fc'] : (!empty($f['CODIGO_FC']) ? $f['CODIGO_FC'] : $f['ID']);
    // Cria um dicionário [Código Firebird => ID MySQL]
    $mapa_filiais[trim($cod_prime)] = trim($f['ID']);
}

// Atualiza a referência de cada vendedor para o ID do MySQL correspondente
if (!empty($vendedores)) {
    foreach ($vendedores as &$v) {
        $ref_original = trim($v['ID_REFERENCIA']); // Esse é o Código do Firebird
        
        // Se a filial existir no nosso dicionário, trocamos a referência para o ID do MySQL
        if (isset($mapa_filiais[$ref_original])) {
            $v['ID_REFERENCIA'] = $mapa_filiais[$ref_original];
        }
    }
    unset($v); // Limpa a referência de memória
}

$meses_array = $filtros->mes();
$ConsultaPermissoes = $ConfiguracaoMetas->consultaPermissoes();


$exibirManipulado = false;
$exibirRevenda = false;
$exibirMarcaPropria = false;

$maxColunas = 9; // Total de colunas desejada
$colunasGeradas = 0; // Contador de colunas já geradas

// Verifica se existem registros com os id_tipo_meta desejados
foreach ($ConsultaPermissoes as $permissao) {
    if ($permissao['id_tipo_meta'] == 2) {
        $exibirManipulado = true;
        $colunasGeradas++;
    } elseif ($permissao['id_tipo_meta'] == 1) {
        $exibirRevenda = true;
        $colunasGeradas++;
    } elseif ($permissao['id_tipo_meta'] == 3) {
        $exibirMarcaPropria = true;
        $colunasGeradas++;
    }
}

$meses = array_map(function ($id, $nome) {
    return ["ID" => $id, "NOME" => $nome];
}, array_keys($meses_array), $meses_array);


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

$tipo_meta = $_GET['tipo_meta'] ?? null;
$ids = array_column($filiais, 'ID');
array_unshift($ids, 'x');
$ids_filial = implode(',', $ids);
$filialselect = !empty($_GET['filial']) ? $_GET['filial'] : null;
$filial = explode(',', $filialselect);
$filial = array_filter($filial, function ($item) {
    return $item !== 'x';
});
$filial = array_values($filial);
$filial = implode(',', $filial);
$visitador = $_GET['visitador'] ?? null;
$periodo = $_GET['periodo'] ?? null;
$visitador = $visitador ? implode(',', array_map(function ($item) {
    return "'" . addslashes(trim($item)) . "'";
}, explode(',', $visitador))) : null;

$vendedor = isset($_GET['vendedor']) && $_GET['vendedor'] !== 'Todos' ? $_GET['vendedor'] : null;
$vendedor = $vendedor ? implode(',', array_map(function ($item) {
    return "'" . addslashes(trim($item)) . "'";
}, explode(',', $vendedor))) : null;

// $filial_ids_array = explode(',', $filial);
// $codigos_fc_array = [];

// foreach ($filiais as $f) {
//     if (in_array($f['ID'], $filial_ids_array)) {
//         $cod = !empty($f['codigo_fc']) ? $f['codigo_fc'] : (!empty($f['CODIGO_FC']) ? $f['CODIGO_FC'] : $f['ID']);
//         $codigos_fc_array[] = $cod;
//     }
// }
// Cria a variável com os códigos Prime do Firebird
// $filial_para_firebird = implode(',', $codigos_fc_array);

$filial_ids_array = explode(',', $filial);
$codigos_fc_array = [];
$mysql_ids_array = [];

foreach ($filiais as $f) {
    $id_interno = $f['ID'];
    $cod_fc = !empty($f['codigo_fc']) ? $f['codigo_fc'] : (!empty($f['CODIGO_FC']) ? $f['CODIGO_FC'] : $id_interno);

    // Aceita tanto se vier o ID do MySQL (pela pesquisa normal) quanto o Código Prime (pelo botão de editar)
    if (in_array($id_interno, $filial_ids_array) || in_array($cod_fc, $filial_ids_array)) {
        $codigos_fc_array[] = $cod_fc;
        $mysql_ids_array[] = $id_interno;
    }
}

// Variável para buscar Vendedores no Firebird
$filial_para_firebird = !empty($codigos_fc_array) ? implode(',', array_unique($codigos_fc_array)) : $filial;

// Variável para buscar as Metas salvas no Banco de Dados
$filial_busca_metas = !empty($codigos_fc_array) ? implode(',', array_unique($codigos_fc_array)) : $filial;

// Variável para desenhar as linhas da tabela (precisa do ID interno para puxar o nome da filial)
$filiais_tabela = !empty($mysql_ids_array) ? array_unique($mysql_ids_array) : $filial_ids_array;

if (isset($_GET['id']) || isset($_GET['form_submitted'])) {
    $lista_metas = [];
    $nomes = [];
    if ($tipo_meta == '2') {
        $nomes = $consulta_painel_metas->get_allvendedores($filial_para_firebird, $vendedor);
    }
    if ($tipo_meta == '4') {
        $nomes = $consulta_painel_metas->get_allvendedores($filial_para_firebird, $visitador);
    }

    $sqlFiltro = " ";

    if (isset($_GET['id']) && $_GET['id'] == '1') {
        $url = http_build_query([
            'codigo_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' => $_GET['periodo'] ?? null,
            'form_submit' => isset($_GET['form_submit']) ? $_GET['form_submit'] : '',
        ]);
    }


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

    if (!empty($_GET['tipo_meta']) && $_GET['tipo_meta'] !== 'Todos') {
        $sqlFiltro .= " and tipo_meta = {$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' and $_GET['tipo_meta'] == 2) {
        $sqlFiltro .= " and codigo_vendedor IN ({$vendedor}) ";
    }

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

    if (!empty($_GET['ids']) && $_GET['ids'] !== 'Todos') {
        $sqlFiltro .= " and id IN ({$ids_metas}) ";
    }

    $listagemMetasDefinidas = $consulta_painel_metas->listarMetasDefinidas('', $filial_busca_metas, $ano, $mes, $sqlFiltro, $meu_periodo);
    if ($tipo_meta !== '3') {
        foreach ($nomes as $items) {
            $codigo = $items['COD_VENDEDOR'];
            $dados_meta = null;

            foreach ($listagemMetasDefinidas as $meta) {
                $codigo_meta = !empty($meta['codigo_vendedor']) ? $meta['codigo_vendedor'] : $meta['codigo_visitador'];

                if ($codigo_meta == $codigo) {
                    $dados_meta = $meta;
                    break;
                }
            }

            if (isset($_GET['id']) && (empty($dados_meta))) {
                continue;
            }

            $lista_metas[] = [
                'codigo_vendedor' => $codigo,
                'codigo_visitador' => $codigo,
                'nome' => $items['NOME'],
                'codigo_filial' => $dados_meta['codigo_filial'] ?? '',
                'ano' => $dados_meta['ano'] ?? '',
                'mes' => $dados_meta['mes'] ?? '',
                'tipo_meta' => $dados_meta['tipo_meta'] ?? '',
                'id_revenda' => $dados_meta['id_revenda'] ?? '',
                'id_manipulado' => $dados_meta['id_manipulado'] ?? '',
                'id_marca_propria' => $dados_meta['id_marca_propria'] ?? '',
                'revenda' => $dados_meta['revenda'] ?? null,
                'manipulado' => $dados_meta['manipulado'] ?? null,
                'marca_propria' => $dados_meta['marca_propria'] ?? null,
                'revenda2' => $dados_meta['revenda2'] ?? null,
                'manipulado2' => $dados_meta['manipulado2'] ?? null,
                'marca_propria2' => $dados_meta['marca_propria2'] ?? null,
                'id' => $dados_meta['id'] ?? '',
                'meta1' => $dados_meta['meta1'] ?? null,
                'meta2' => $dados_meta['meta2'] ?? null,
                'percentual' => $dados_meta['percentual'] ?? null,
            ];
        }
    } else {
        foreach ($listagemMetasDefinidas as $meta) {
            $lista_metas[$meta['codigo_filial']] = [
                'codigo_filial' => $meta['codigo_filial'] ?? '',
                'ano' => $meta['ano'] ?? '',
                'mes' => $meta['mes'] ?? '',
                'tipo_meta' => $meta['tipo_meta'] ?? '',
                'id_revenda' => $meta['id_revenda'] ?? 0,
                'id_manipulado' => $meta['id_manipulado'] ?? 0,
                'id_marca_propria' => $meta['id_marca_propria'] ?? 0,
                'revenda' => $meta['revenda'] ?? null,
                'manipulado' => $meta['manipulado'] ?? null,
                'marca_propria' => $meta['marca_propria'] ?? null,
                'revenda2' => $meta['revenda2'] ?? null,
                'manipulado2' => $meta['manipulado2'] ?? null,
                'marca_propria2' => $meta['marca_propria2'] ?? null
            ];
        }
    }
}
//print_r($lista_metas);
// $filiais_tabela = explode(',', $filial);

include('../header.php');
include('../menu.php');
?>

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

    <script src="https://code.jquery.com/jquery-3.6.0.min.js"></script>
    <link href="https://cdn.jsdelivr.net/npm/select2@4.1.0-rc.0/dist/css/select2.min.css" rel="stylesheet" />
    <script src="https://cdn.jsdelivr.net/npm/select2@4.1.0-rc.0/dist/js/select2.min.js"></script>
</head>

<style>
    .select-all-container {
        margin-bottom: 10px;
    }

    .months-container {
        display: flex;
        flex-wrap: wrap;
        gap: 20px;
    }

    .month-checkbox {
        display: flex;
        align-items: center;
        gap: 10px;
    }

    .month-checkbox input[type="checkbox"] {
        margin: 0;
    }

    /* 
    #vendedores_input2 {
        white-space: nowrap;
        overflow: hidden;
        text-overflow: ellipsis;
    }

    #vendedor_input {
        width: 100% !important;
        max-width: 250px !important;
    }

    #vendedor_dropdown {
        max-height: 200px;
        overflow-y: auto;
        width: auto;
        min-width: 200px;
        max-width: 254px;
        position: absolute;
        z-index: 1000;
        background-color: white;
        border: 1px solid #ccc;
        box-shadow: 0 2px 8px rgba(0, 0, 0, 0.15);
        display: none;
    } */

    .table th,
    .table td {
        vertical-align: middle;
    }
</style>

<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"><?= $pageTitle ?></h4>
                    </div>

                    <div class="col-6 text-right">
                        <a href="lista_metas_definidas.php<?= isset($url) ? '?' . $url : ''; ?>" class="btn btn-light"><i class="mdi mdi-keyboard-backspace"></i> Voltar</a>
                        <!-- <button onclick="history.back()" class="btn btn-light"><i class="mdi mdi-keyboard-backspace"></i> Voltar</button> -->
                    </div>

                    <div class="col-12">
                        <hr>
                    </div>
                    <?php if (!isset($_GET['id']) || $_GET['id'] !== '1') { ?>
                        <div class="col-12">
                            <form method="get" id="meuFormulario" onsubmit="return validarFormulario()">
                                <div class="form-row mb-3">
                                    <?php
                                    echo $filtros->filtroFilialSimples($filialselect, $filiais, false);
                                    echo $filtros->filtroAno($ano);
                                    echo $filtros->filtroMes($mes);
                                    ?>

                                    <div class="form-group col-6 col-md-4 col-lg-2">
                                        <label for="tipo_meta" class="col-form-label">Tipo Meta</label>
                                        <select name="tipo_meta" id="tipo_meta" class="form-control" oninput="validarCampo('tipo_meta', this.value)">
                                            <option value="">Selecione o Tipo</option>
                                            <option value="2" <?php echo (isset($tipo_meta) && $tipo_meta == "2") ? "selected" : ""; ?>><?= $nome_para_vendedores ?></option>
                                            <option value="3" <?php echo (isset($tipo_meta) && $tipo_meta == "3") ? "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 ?>
                                    <?php
                                    // echo $filtros->filtroCheckBox('visitador', $reprensentantes);
                                    echo $filtros->filtroCheckBox(lcfirst($nome_para_vendedor), $vendedores, null);
                                    ?>

                                    <input type="hidden" name="form_submitted" value="1">
                                    <div id="x" class="col-12 col-md-8 col-lg-4 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>
                            </form>
                        </div>
                    <?php } ?>
                </div>


                <?php if (isset($_GET['form_submitted']) and $_GET['form_submitted']) { ?>
                    <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_submitted']) || isset($_GET['id']) && $_GET['id'] == '1') && $tipo_meta == 3) { ?>
                    <form action="processa.insercao_atualizacao.php" method="POST">
                        <div class="col-12">
                            <table class="table table-striped table-bordered dt-responsive nowrap">
                                <thead>
                                    <tr align="center">
                                        <th>Filial</th>
                                        <th>Mês/Ano</th>

                                        <?php if ($periodo != 2) : ?>
                                            <?php if ($exibirManipulado) { ?>
                                                <th>Manipulado <?php echo $periodo == '1' || $periodo == 'mes' ? '1°' : '' ?></th>
                                            <?php }
                                            if ($exibirRevenda) {  ?>
                                                <th>Revenda <?php echo $periodo == '1' || $periodo == 'mes' ? '1°' : '' ?></th>
                                            <?php }
                                            if ($exibirMarcaPropria) {  ?>
                                                <th>Marca Própria <?php echo $periodo == '1' || $periodo == 'mes' ? '1°' : '' ?></th>
                                            <?php } ?>
                                        <?php endif ?>

                                        <?php if (($meu_periodo !== 'Mês' && $periodo == '2') || $periodo == 'mes'): ?>
                                            <?php if ($exibirManipulado) { ?>
                                                <th>Manipulado 2°</th>
                                            <?php }
                                            if ($exibirRevenda) {  ?>
                                                <th>Revenda 2°</th>
                                            <?php }
                                            if ($exibirMarcaPropria) {  ?>
                                                <th>Marca Própria 2°</th>
                                            <?php } ?>
                                        <?php endif ?>
                                    </tr>
                                </thead>
                                <tbody>
                                    <?php foreach ($filiais_tabela as $filial_id) :
                                        $filialEncontrada = array_filter($filiais, function ($item) use ($filial_id) {
                                            return $item['ID'] == $filial_id;
                                        });
                                        
                                        $dadosFilial = reset($filialEncontrada);
                                        $nomeFilial = !empty($dadosFilial) ? $dadosFilial['NOME'] : 'N/A';
                                        
                                        // CORREÇÃO: Pegar o Código FC (Firebird) em vez do ID interno!
                                        $codigo_fc = !empty($dadosFilial['codigo_fc']) ? $dadosFilial['codigo_fc'] : (!empty($dadosFilial['CODIGO_FC']) ? $dadosFilial['CODIGO_FC'] : $filial_id);
                                    ?>
                                        <tr align="center">
                                            <td><?= $nomeFilial; ?></td>
                                            <td><?= $mes . "/" . $ano; ?></td>
                                            <?php if ($periodo != 2) : ?>
                                                <?php if ($exibirManipulado) { ?>
                                                    <td><input max="1000000000" type="text" name="metas[<?= $lista_metas[$codigo_fc]['id_manipulado'] ?? 0; ?>][<?= $codigo_fc; ?>][<?= $mes; ?>][manipulado1]" class="form-control money" value="<?= htmlspecialchars(isset($lista_metas[$codigo_fc]['manipulado']) ? number_format($lista_metas[$codigo_fc]['manipulado'], 2, ',', '.') : ''); ?>" /></td>
                                                <?php }
                                                if ($exibirRevenda) { ?>
                                                    <td><input maxlength="12" type="text" name="metas[<?= $lista_metas[$codigo_fc]['id_revenda'] ?? 0; ?>][<?= $codigo_fc; ?>][<?= $mes; ?>][revenda1]" class="form-control money" value="<?= htmlspecialchars(isset($lista_metas[$codigo_fc]['revenda']) ? number_format($lista_metas[$codigo_fc]['revenda'], 2, ',', '.') : ''); ?>" /></td>
                                                <?php }
                                                if ($exibirMarcaPropria) {  ?>
                                                    <td><input maxlength="12" type="text" name="metas[<?= $lista_metas[$codigo_fc]['id_marca_propria'] ?? 0; ?>][<?= $codigo_fc; ?>][<?= $mes; ?>][marca_propria1]" class="form-control money" value="<?= htmlspecialchars(isset($lista_metas[$codigo_fc]['marca_propria']) ? number_format($lista_metas[$codigo_fc]['marca_propria'], 2, ',', '.') : ''); ?>" /></td>
                                                <?php } ?>
                                            <?php endif ?>

                                            <?php if (($meu_periodo !== 'Mês' && $periodo == '2') || $periodo == 'mes'): ?>
                                                <?php if ($exibirManipulado) { ?>
                                                    <td><input maxlength="12" type="text" name="metas[<?= $lista_metas[$codigo_fc]['id_manipulado'] ?? 0; ?>][<?= $codigo_fc; ?>][<?= $mes; ?>][manipulado2]" class="form-control money" value="<?= htmlspecialchars(isset($lista_metas[$codigo_fc]['manipulado2']) ? number_format($lista_metas[$codigo_fc]['manipulado2'], 2, ',', '.') : ''); ?>" /></td>
                                                <?php }
                                                if ($exibirRevenda) {  ?>
                                                    <td><input maxlength="12" type="text" name="metas[<?= $lista_metas[$codigo_fc]['id_revenda'] ?? 0; ?>][<?= $codigo_fc; ?>][<?= $mes; ?>][revenda2]" class="form-control money" value="<?= htmlspecialchars(isset($lista_metas[$codigo_fc]['revenda2']) ? number_format($lista_metas[$codigo_fc]['revenda2'], 2, ',', '.') : ''); ?>" /></td>
                                                <?php }
                                                if ($exibirMarcaPropria) {  ?>
                                                    <td><input maxlength="12" type="text" name="metas[<?= $lista_metas[$codigo_fc]['id_marca_propria'] ?? 0; ?>][<?= $codigo_fc; ?>][<?= $mes; ?>][marca_propria2]" class="form-control money" value="<?= htmlspecialchars(isset($lista_metas[$codigo_fc]['marca_propria2']) ? number_format($lista_metas[$codigo_fc]['marca_propria2'], 2, ',', '.') : ''); ?>" /></td>
                                                <?php } ?>
                                            <?php endif ?>
                                        </tr>
                                    <?php endforeach; ?>
                                </tbody>
                            </table>
                        </div>
                        <div class="col-12 text-right">
                            <input type="hidden" name="tipo_meta" value="<?= $tipo_meta ?? 0; ?>">
                            <input type="hidden" name="ano" value="<?= $ano ?? 0; ?>">
                            <input type="hidden" name="periodo" value="<?= $periodo ?? null; ?>"> <input type="hidden" name="semana" value="<?= $semana ?? null; ?>">
                            <input type="hidden" name="url" value="<?= isset($url) ? $url : ''; ?>">
                            <button type="submit" class="btn btn-primary">Salvar</button>
                        </div>
                    </form>
                <?php } elseif ((isset($_GET['form_submitted']) || isset($_GET['id']) && $_GET['id'] == '1') && $tipo_meta == 2) { ?>
                    <form action="processa.insercao_atualizacao.php" method="POST">
                        <table class="table table-striped table-bordered dt-responsive nowrap">
                            <thead>
                                <tr align="center">
                                    <!-- <th>Filial</th> -->
                                    <th>Vendedor</th>
                                    <th>Mês/Ano</th>
                                    <?php if ($periodo != 2) : ?>
                                        <?php if ($exibirManipulado) { ?>
                                            <th>Manipulado <?php echo $periodo == '1' || $periodo == 'mes' ? '1°' : '' ?></th>
                                        <?php }
                                        if ($exibirRevenda) {  ?>
                                            <th>Revenda <?php echo $periodo == '1' || $periodo == 'mes' ? '1°' : '' ?></th>
                                        <?php }
                                        if ($exibirMarcaPropria) {  ?>
                                            <th>Marca Própria <?php echo $periodo == '1' || $periodo == 'mes' ? '1°' : '' ?></th>
                                        <?php } ?>
                                    <?php endif ?>

                                    <?php if (($meu_periodo !== 'Mês' && $periodo == '2') || $periodo == 'mes'): ?>
                                        <?php if ($exibirManipulado) { ?>
                                            <th>Manipulado 2°</th>
                                        <?php }
                                        if ($exibirRevenda) {  ?>
                                            <th>Revenda 2°</th>
                                        <?php }
                                        if ($exibirMarcaPropria) {  ?>
                                            <th>Marca Própria 2°</th>
                                        <?php } ?>
                                    <?php endif ?>
                                </tr>
                            </thead>
                            <tbody>
                                <?php foreach ($lista_metas as $item_vendedor) : ?>
                                    <tr align="center">
                                        <td><?= $item_vendedor["nome"]; ?> (<?= $item_vendedor["codigo_vendedor"]; ?>)</td>
                                        <td><?= $mes . "/" . $ano; ?></td>
                                        <?php if ($periodo != 2) : ?>
                                            <?php if ($exibirManipulado) { ?>
                                                <td><input maxlength="12" type="text" name="metas[<?= $item_vendedor['id_manipulado'] ? $item_vendedor['id_manipulado'] : 0; ?>][<?= $filial_para_firebird; ?>][<?= $item_vendedor['codigo_vendedor']; ?>][<?= $mes; ?>][manipulado1]" class="form-control money" value="<?= htmlspecialchars(isset($item_vendedor['manipulado']) ? number_format($item_vendedor['manipulado'], 2, ',', '.') : ''); ?>" /></td>
                                            <?php }
                                            if ($exibirRevenda) { ?>
                                                <td><input maxlength="12" type="text" name="metas[<?= $item_vendedor['id_revenda'] ? $item_vendedor['id_revenda'] : 0;  ?>][<?= $filial_para_firebird; ?>][<?= $item_vendedor['codigo_vendedor']; ?>][<?= $mes; ?>][revenda1]" class="form-control money" value="<?= htmlspecialchars(isset($item_vendedor['revenda']) ? number_format($item_vendedor['revenda'], 2, ',', '.') : ''); ?>" /></td>
                                            <?php }
                                            if ($exibirMarcaPropria) {  ?>
                                                <td><input maxlength="12" type="text" name="metas[<?= $item_vendedor['id_marca_propria'] ? $item_vendedor['id_marca_propria'] : 0; ?>][<?= $filial_para_firebird; ?>][<?= $item_vendedor['codigo_vendedor']; ?>][<?= $mes; ?>][marca_propria1]" class="form-control money" value="<?= htmlspecialchars(isset($item_vendedor['marca_propria']) ? number_format($item_vendedor['marca_propria'], 2, ',', '.') : ''); ?>" /></td>
                                            <?php } ?>
                                        <?php endif ?>

                                        <?php if (($meu_periodo !== 'Mês' && $periodo == '2') || $periodo == 'mes'): ?>
                                            <?php if ($exibirManipulado) { ?>
                                                <td><input maxlength="12" type="text" name="metas[<?= $item_vendedor['id_manipulado'] ? $item_vendedor['id_manipulado'] : 0; ?>][<?= $filial_para_firebird; ?>][<?= $item_vendedor['codigo_vendedor']; ?>][<?= $mes; ?>][manipulado2]" class="form-control money" value="<?= htmlspecialchars(isset($item_vendedor['manipulado2']) ? number_format($item_vendedor['manipulado2'], 2, ',', '.') : ''); ?>" /></td>
                                            <?php }
                                            if ($exibirRevenda) {  ?>
                                                <td><input maxlength="12" type="text" name="metas[<?= $item_vendedor['id_revenda'] ? $item_vendedor['id_revenda'] : 0;  ?>][<?= $filial_para_firebird; ?>][<?= $item_vendedor['codigo_vendedor']; ?>][<?= $mes; ?>][revenda2]" class="form-control money" value="<?= htmlspecialchars(isset($item_vendedor['revenda2']) ? number_format($item_vendedor['revenda2'], 2, ',', '.') : ''); ?>" /></td>
                                            <?php }
                                            if ($exibirMarcaPropria) {  ?>
                                                <td><input maxlength="12" type="text" name="metas[<?= $item_vendedor['id_marca_propria'] ? $item_vendedor['id_marca_propria'] : 0;  ?>][<?= $filial_para_firebird; ?>][<?= $item_vendedor['codigo_vendedor']; ?>][<?= $mes; ?>][marca_propria2]" class="form-control money" value="<?= htmlspecialchars(isset($item_vendedor['marca_propria2']) ? number_format($item_vendedor['marca_propria2'], 2, ',', '.') : ''); ?>" /></td>
                                            <?php } ?>
                                        <?php endif ?>
                                    </tr>
                                <?php endforeach; ?>
                            </tbody>
                        </table>
                        <div class="col-12 text-right">
                            <input type="hidden" name="tipo_meta" value="<?= $tipo_meta ?? 0; ?>">
                            <input type="hidden" name="ano" value="<?= $ano ?? 0; ?>">
                            <input type="hidden" name="periodo" value="<?= $periodo ?? null; ?>"> <input type="hidden" name="semana" value="<?= $semana ?? null; ?>">
                            <input type="hidden" name="url" value="<?= isset($url) ? $url : ''; ?>">
                            <button type="submit" class="btn btn-primary">Salvar</button>
                        </div>
                    </form>
                <?php } ?>
            </div>
        </div>
    </div>
    </div>
    </div>

    <!-- end wrapper -->

    <!-- ============================================================== -->
    <!-- End Page content -->
    <!-- ============================================================== -->

    <?php //include('../../geral/mensagens_modais.php'); 
    include('../footer.php');
    include('../../geral/mensagens_modais.php');
    ?>
    <script src="../../../assets/js/funcoes.js"></script>

    <!-- Vendor js -->
    <script src="../../../assets/js/vendor.min.js"></script>
    <?php //include('../../geral/mensagens_modais.php'); 
    $nome_para_vendedor = lcfirst($nome_para_vendedor);
    ?>
    <!-- App js-->
    <script src="../../../assets/js/app.min.js"></script>
    <script src="../../../assets/js/funcoes.js"></script>
    <script src="../../geral/javascript.js"></script>
    <script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.6.0/jquery.min.js"></script>

    <script src="https://cdnjs.cloudflare.com/ajax/libs/jquery.mask/1.14.15/jquery.mask.min.js"></script>
    <?php if (!isset($_GET['id'])): ?>
        <script>
            // initDropdownFilter('visitador', false, 'filial');
            initDropdownFilter('vendedor', false, 'filial');

            function carregarSemanas() {
                const ano = document.getElementById('ano').value;
                const mes = document.getElementById('mes').value;
                const semana = <?php echo isset($semana) ? json_encode($semana) : '""'; ?>;

                const dropSemana = document.getElementById('drop_semana');

                if (ano && mes && dropSemana) {
                    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;
                            dropSemana.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);
        </script>
    <?php endif; ?>

    <script>
        $(document).ready(function() {
            $(".money").mask('#.##0,00', {
                reverse: true
            });
            $(".p").mask('##0,00', {
                reverse: true
            });
        });

        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 validarCheckBox(id = null) {
        //     let checkboxes = document.querySelectorAll('.' + id + '-checkbox:checked'); // Seleciona os marcados
        //     let valido = checkboxes.length > 0;

        //     // Substituir "selecionados" por "_input"
        //     let inputId = id + "_input";
        //     let elemento = document.getElementById(inputId);

        //     //console.log(id)
        //     //console.log(valido)
        //     if (elemento) {
        //         if (!valido) {
        //             elemento.classList.add('is-invalido');
        //             //console.log("Nenhum " + inputId + " foi selecionado!");
        //         } else {
        //             elemento.classList.remove('is-invalido');
        //             //console.log(inputId + " (s) selecionado(s). ");
        //         }
        //     }

        //     return valido;
        // }

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

            // // IDs base dos grupos de checkbox
            // const idsCheckBox = ["meses"];

            // idsCheckBox.forEach(id => {
            //     const inputId = id + "_input";
            //     const elemento = document.getElementById(inputId);

            //     if (elemento && elemento.closest(".form-group").style.display !== "none") {
            //         if (!validarCheckBox(id)) {
            //             camposValidos = false;
            //         }
            //     }
            // });

            campos.forEach(function(campo) {
                // Ignorar campos que já foram validados como checkbox
                if (
                    ["vendedorselecionados", "vendedor_input"].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;
        }


        function goBack() {
            window.history.back();
        }


        document.addEventListener("DOMContentLoaded", function() {
            // Seleciona os formulários que enviam dados para o processa
            const forms = document.querySelectorAll('form[action="processa.insercao_atualizacao.php"]');
            
            forms.forEach(form => {
                form.addEventListener('submit', function() {
                    // Busca todos os inputs que usam a máscara de dinheiro
                    const inputsMeta = form.querySelectorAll('input.money');
                    
                    inputsMeta.forEach(input => {
                        // Se o campo estiver totalmente em branco, forçamos o valor para "0,00"
                        if (input.value.trim() === '') {
                            input.value = '0,00';
                        }
                    });
                });
            });
        });


        document.addEventListener("DOMContentLoaded", function() {
            // Remove status and message parameters from URL
            const url = new URL(window.location);
            url.searchParams.delete('status');
            url.searchParams.delete('message');
            window.history.replaceState({}, document.title, url);
        });

        document.addEventListener("DOMContentLoaded", function() {
            var tipoMetaSelect = document.getElementById('tipo_meta');
            var vendedoresInput = document.getElementById('drop_<?= $nome_para_vendedor ?>');
            //var visitadoresInput = document.getElementById('drop_visitador');
            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'));
        });
        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>
    <style>
        .is-invalido {
            box-shadow: 0 0 5px red !important;
        }
    </style>
</body>

</html>