<?php
set_time_limit(300); 
require '../conexao/conexao.php';
//require '../sessao.php';
require '../conexao/acesso.php';
require '../configuacoes.php';
require '../configuracao/get_config.php';
require '../querys/query-configuracao-metas.php';
require '../logs/gera-log.php';
require '../configuracao/consulta_banco_dados.php';
require '../configuracao/filtros.php';

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

$cidades = $consulta_bb->get_cidades();
gerarLog(
    1, // tipo de log (acesso)
    $basePath, // módulo
    $_SESSION['CodUsuario'],
    $_SESSION['NomeUsuario']
);

$configuracoes = new Configuracoes();
$ConfiguracaoMetas = new ConfiguracaoMetas($connectionmysql);


$ConsultaPermissoes = $ConfiguracaoMetas->consultaPermissoes();

$exibirManipulado = false;
$exibirRevenda = false;
$exibirMarcaPropria = false;
$maxColunas = 9; // Total de colunas desejadas
$colunasGeradas = 0; // Contador de colunas já geradas

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++;
    }
}

$operacoes = $configuracoes->get_operacoes_em_uso(); // Supondo que já seja um array
if (!empty($operacoes)) {
    sort($operacoes);
    $operacoes = implode(',', array_map('intval', $operacoes));
} else {
    $operacoes = null;
}

function getBadgeClass($percentage)
{
    if ($percentage < 90) {
        return 'badge-danger';
    } elseif ($percentage >= 90 && $percentage < 100) {
        return 'badge-warning';
    } elseif ($percentage >= 100 && $percentage < 105) {
        return 'badge-success';
    } elseif ($percentage >= 105) {
        return 'badge-primary';
    } else {
        return ''; // ou outra classe de sua escolha para situações não esperadas
    }
}


function getBadgeClassmeta($percentage)
{
    if ($percentage <= 70) {
        return 'badge-danger';
    } elseif ($percentage <= 80) {
        return 'badge-warning';
    } elseif ($percentage > 80 && $percentage <= 99) {
        return 'badge-primary';
    } elseif ($percentage >= 100) {
        return 'badge-success';
    } else {
        return ''; // ou outra classe de sua escolha para situações não esperadas
    }
}

function formatarNumero($numero)
{
    if ($numero >= 1000) {
        return number_format($numero / 1000, 1, ',', '.') . "k";
    } else {
        return number_format($numero, 2, ',', '.');
    }
}

$hojeFormatado = date('Y-m-d');
//$hoje = DateTime::createFromFormat('d-m-Y H:i', '23-11-2024 08:51');
//$hojeFormatado = $hoje->format('Y-m-d');
// Obtém o mês e ano da data atual
$mesAtual = date('m', strtotime($hojeFormatado));
$anoAtual = date('Y', strtotime($hojeFormatado));


//recuperando cidade combo filial
$query_cidade_filial = " select
DISTINCT
EP.codigo_cidadeestado ,
CE.NOMECIDADE as MUNIC
from EMPRESA EP
INNER JOIN CADASTRO_ENDERECO CA ON CA.codigo_cadastro = EP.codigo
inner join CIDADEESTADO CE on CA.codigo_cidadeestado = CE.CODIGO
where CA.tipo_cadastro = 5
order by EP.CODIGO";
$result_cidade_filial = ibase_query($connection, $query_cidade_filial);

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

$cidadefiliais = [];
while ($row = ibase_fetch_assoc($result_cidade_filial)) {
    $cidadefiliais[] = $row;
}


$query_vendedor_filial = "SELECT  DISTINCT
              FU.CODIGO AS CDFUN,
              FU.NOMEFUNCIONARIO AS NOMEFUN,
              FU.CODIGO_EMPRESA AS CDFILIAL
          FROM FUNCIONARIO FU
          INNER JOIN FUNCIONARIO_FUNCAO FF ON FU.CODIGO_FUNCIONARIO_FUNCAO = FF.CODIGO
          INNER JOIN FUNCIONARIO_DEPTO FD ON FU.CODIGO_FUNCIONARIO_DEPTO = FD.CODIGO
          WHERE FU.CODIGO <> 0 AND FU.ATIVO = '-1'
          --and FU.CODIGO_EMPRESA = ? -- filtro pela filial selecionada
";
$result_vendedor_filial = ibase_query($connection, $query_vendedor_filial);

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

$vendedorlojas = [];
while ($row = ibase_fetch_assoc($result_vendedor_filial)) {
    $vendedorlojas[] = $row;
}


//$cidade = trim($_GET['cidade']) ?? null;
if (isset($_GET['cidade'])) {
    // Obtém o valor da cidade e remove espaços em branco extras
    $cidade = trim($_GET['cidade']);
} else {
    // Se o parâmetro 'cidade' não estiver presente, define $cidade como null
    $cidade = null;
}

//recuperando combo filial
$filial = $_GET['filial'] ?? null;
require '../querys/query-filiais.php';
$filiais = new Filiais($connectionmysql);

$listagemFiliais = $filiais->listarFiliais();
$filiaisParaFiltro = [];
$idsFiliais = [];

// Transforma o array do KPI (id, nome_filial) para o formato do Filtro (ID, NOME)
foreach ($listagemFiliais as $f) {
    $filiaisParaFiltro[] = [
        'ID' => $f['codigo_fc'],
        'NOME' => $f['nome_filial']
    ];
    $idsFiliais[] = $f['codigo_fc'];
}

// Se não tiver filial selecionada na URL, seleciona TODAS por padrão (igual ao manda receita)
// if (empty($filial) || $filial == "Todos") {
//     $filial = implode(',', $idsFiliais);
// }

$DataInicial = $_GET['DataInicial'] ?? null;
$DataFinal = $_GET['DataFinal'] ?? null;
$codvendedor = $_GET['codvendedor'] ?? null;
//$filial = $_GET['filial'] ?? null;

// Limpa o código do vendedor se estiver vazio
if (empty($codvendedor) || trim($codvendedor) == "") {
    $codvendedor = null;
}

// Limpa a filial para garantir que não tenha espaços extras
if (!empty($filial) && $filial !== "Todos") {
    $filial = implode(',', array_map('trim', explode(',', $filial)));
}

// Criar a string de consulta com os parâmetros
$queryString = http_build_query([
    'cidade' => $cidade,
    'DataInicial' => $DataInicial,
    'DataFinal' => $DataFinal,
    'filial' => $filial
]);

// URL da página "ranking.php" com os parâmetros da pesquisa
$rankingPageUrl = "ranking.php?$queryString";



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

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

    //if (isset($_GET['pesquisar']) || (isset($_GET['retorno']) && $_GET['retorno'] == 'detalhamento')) {

    $sql_nome_fun = " SELECT  DISTINCT
              FU.NOMEFUNCIONARIO AS NOMEFUN
          FROM FUNCIONARIO FU
          INNER JOIN FUNCIONARIO_FUNCAO FF ON FU.CODIGO_FUNCIONARIO_FUNCAO = FF.CODIGO
          INNER JOIN FUNCIONARIO_DEPTO FD ON FU.CODIGO_FUNCIONARIO_DEPTO = FD.CODIGO
          WHERE FU.CODIGO <> 0 AND FU.ATIVO = '-1' ";

    // Aplicar o filtro da filial
    if ($codvendedor && $codvendedor != "") {
        $sql_nome_fun .= " AND FU.CODIGO = '$codvendedor' ";
    }
    if ($filial && $filial != "Todos") {
        $sql_nome_fun .= " AND FU.codigo_empresa in (" . ($filial) . ")";
    }

    $result_nome_fun = ibase_query($connection, $sql_nome_fun);


    if (!$result_nome_fun) {
        die('Erro na consulta' . $sql_nome_fun . 'Firebird/InterBase: ' . ibase_errmsg());
    }

    $rowsresult_nome_fun = ibase_fetch_assoc($result_nome_fun);

    //SELECT VALOR DESCONTO VAREJO
    $sql_Desconto_varejo = "
        SELECT
        SUM(A1.VALORVENDA) AS valor_bruto_varejo, 
        SUM(A1.VALORVENDA_DESC) AS valor_liquido_varejo
        FROM ATENDIMENTO_A1 A1
        LEFT JOIN UTIL_REL_AG1(1) AG ON AG.AG1_OP > 0
        INNER JOIN FUNCIONARIO FU ON FU.CODIGO = IIF(AG.AG1_OP = 1, A1.CODIGO_FUNCIONARIO_COMISSAO, A1.AVIADA_CF)
        WHERE A1.TIPO_ATENDIMENTO IN (2) AND CAST(A1.entregue_dt as DATE) BETWEEN '$DataInicial' AND '$DataFinal' 
    ";


    // Adicionando condição de filial, se houver
    if ($filial && $filial != "Todos") {
        // Verifica se $filial é uma string e não um array
        if (is_string($filial)) {
            // Certifique-se de que os valores sejam inteiros
            $filial = implode(",", array_map('intval', explode(",", $filial))); // Converte a string em array e depois para string separada por vírgulas
        }

        // Adiciona a condição de filial à consulta
        $sql_Desconto_varejo .= " AND A1.AVIADA_LJ IN ($filial)";
    }

    // Adicionando as condições adicionais da consulta original
    $sql_Desconto_varejo .= "
        AND A1.PAGAR_COMISSAO_FUNCIONARIO = '-1'
        AND A1.STATUS_MOV = '-1'
    ";
    if (!empty($codvendedor)) {
        $sql_Desconto_varejo .= " AND A1.CODIGO_FUNCIONARIO_COMISSAO = '" . $codvendedor . "'";
    }

    if (!empty($operacoes) && $operacoes != "NULL") {
        $sql_Desconto_varejo .= " AND A1.codigo_tipooperacao NOT IN ($operacoes)";
        //  AND A1.codigo_tipooperacao NOT IN (5,159,174,184,185,186,187,188,190,216,221,234,235,236,237,242,246,261,296,297,255,209,24,121,124,125,138,183,224,226,230, 231,232,276,287,292,295,300)
    }

    // Executar a consulta SQL
    $resultDescontoVarejo = ibase_query($connection, $sql_Desconto_varejo);
    if (!$resultDescontoVarejo) {
        die('Erro na consulta' . $sql_Desconto_varejo . '  Firebird/InterBase: ' . ibase_errmsg());
    }
    $rowDescontoVarejo = ibase_fetch_assoc($resultDescontoVarejo);


    // Salvando os valores bruto e líquido em variáveis PHP
    $valor_bruto_varejo = $rowDescontoVarejo['VALOR_BRUTO_VAREJO'];
    $valor_liquido_varejo = $rowDescontoVarejo['VALOR_LIQUIDO_VAREJO'];
    //echo $valor_bruto_varejo;
    //echo " -- ";
    //echo $valor_liquido_varejo ;
    //Calculando o desconto de varejo

    // Verificando se o valor líquido é maior que 0 para evitar divisão por zero
    if ($valor_liquido_varejo > 0) {
        // $percentual_desconto_varejo = (($valor_liquido_varejo / $valor_bruto_varejo) - 1) * 100;
        $percentual_desconto_varejo = (($valor_bruto_varejo - $valor_liquido_varejo) / $valor_bruto_varejo) * 100;
    } else {
        $percentual_desconto_varejo = 0; // Caso o valor líquido seja 0, o percentual de desconto será zero
    }

    //SELECT VALOR DESCONTO MANIPULADO
    $sql_Desconto_manipulado = "
        SELECT
        SUM(A1.VALORVENDA) AS valor_bruto_manipulado, 
            SUM(A1.VALORVENDA_DESC) AS valor_liquido_manipulado
        FROM ATENDIMENTO_A1 A1
        LEFT JOIN UTIL_REL_AG1(1) AG ON AG.AG1_OP > 0
        INNER JOIN FUNCIONARIO FU ON FU.CODIGO = IIF(AG.AG1_OP = 1, A1.CODIGO_FUNCIONARIO_COMISSAO, A1.AVIADA_CF)
        WHERE A1.TIPO_ATENDIMENTO IN (1) AND CAST(A1.entregue_dt as DATE) BETWEEN '$DataInicial' AND '$DataFinal'
    ";

    // Adicionando condição de filial, se houver
    if ($filial && $filial != "Todos") {
        if (is_array($filial)) {
            $filial = implode(",", $filial); // Converte array para string separada por vírgulas
        }
        $sql_Desconto_manipulado .= " AND A1.AVIADA_LJ IN ($filial)";
    }

    // Adicionando condições adicionais
    $sql_Desconto_manipulado .= "
        AND A1.PAGAR_COMISSAO_FUNCIONARIO = '-1'
        AND A1.STATUS_MOV = '-1'
    ";

    if (!empty($codvendedor)) {
        $sql_Desconto_manipulado .= " AND A1.CODIGO_FUNCIONARIO_COMISSAO = '" . $codvendedor . "' ";
    }

    if (!empty($operacoes) && $operacoes != "NULL") {
        $sql_Desconto_manipulado .= " AND A1.codigo_tipooperacao NOT IN ($operacoes)";
    }
    // Executar a consulta SQL
    $resultDescontoManipulado = ibase_query($connection, $sql_Desconto_manipulado);
    if (!$resultDescontoManipulado) {
        die('Erro na consulta: ' . ibase_errmsg());
    }
    $rowDescontoManipulado = ibase_fetch_assoc($resultDescontoManipulado);

    // Salvando os valores bruto e líquido em variáveis PHP
    $valor_bruto_manipulado = $rowDescontoManipulado['VALOR_BRUTO_MANIPULADO'];
    $valor_liquido_manipulado = $rowDescontoManipulado['VALOR_LIQUIDO_MANIPULADO'];

    //SQL para pegar o desconto de um produto específico

    $sql_Produto_especifico = " SELECT SUM(benz.valor_venda_liquido) AS valor_liquido_produto,
        SUM(benz.valor_venda_total) AS valor_bruto_produto
        FROM (SELECT
                cast(coalesce(A1.VALORVENDA_DESC,0) as numeric (18,2)) AS valor_venda_liquido,
                cast(coalesce(A1.VALORVENDA,0) as numeric (18,2)) AS valor_venda_total
        from ATENDIMENTO_A1 A1
        LEFT JOIN UTIL_REL_AG1(1) AG ON AG.AG1_OP > 0
            INNER JOIN FUNCIONARIO FU ON FU.CODIGO = IIF(AG.AG1_OP = 1, A1.CODIGO_FUNCIONARIO_COMISSAO, A1.AVIADA_CF)
        inner join CLIENTE C on A1.CODIGO_CLIENTE = C.CODIGO
        inner join MEDICO M on A1.CODIGO_MEDICO = M.CODIGO
        left join COMPRA_RELAC_MOV RM on A1.CODIGO = RM.CODIGO_ATENDIMENTO_A1 and RM.CODIGO_COMPRA is not null
        left join ATENDIMENTO_ED ED ON ED.CODIGO = A1.CODIGO_ATEND_E
        inner join ATENDIMENTO_A2 A2 on A1.CODIGO = A2.CODIGO_ATEND_A1
        inner join FORMAFARMACEUTICA FF on A2.CODIGO_FORMAFARMACEUTICA = FF.CODIGO
        inner join ATENDIMENTO_A3 A3 on A1.CODIGO = A3.CODIGO_ATEND_A1 and A2.NUMEROFORMULA = A3.NUMEROFORMULA";

    $sql_Produto_especifico .= " WHERE 
                                 A1.TIPO_ATENDIMENTO = 1  AND  CAST(A1.entregue_dt as DATE)  
                                 BETWEEN '$DataInicial' AND '$DataFinal'";

    if (!empty($codvendedor)) {
        $sql_Produto_especifico .= " AND A1.CODIGO_FUNCIONARIO_COMISSAO = '" . $codvendedor . "' ";
    }
    // Adicionando condição de filial, se houver
    if ($filial && $filial != "Todos") {
        if (is_array($filial)) {
            $filial = implode(",", $filial); // Converte array para string separada por vírgulas
        }
        $sql_Produto_especifico .= " AND A1.AVIADA_LJ IN ($filial)";
    }
    if (!empty($operacoes) && $operacoes != "NULL") {
        $sql_Produto_especifico .= " AND A1.codigo_tipooperacao NOT IN ($operacoes)";
        //  AND A1.codigo_tipooperacao NOT IN (5,159,174,184,185,186,187,188,190,216,221,234,235,236,237,242,246,261,296,297,255,209,24,121,124,125,138,183,224,226,230, 231,232,276,287,292,295,300)
    }
    $sql_Produto_especifico .= " AND A3.codigo_produto = '1000261'

AND A1.cancelamento_cf is null
AND A1.descarte_cf is null
group by
A1.CODIGO,
A1.CODIGO_ANIMAL,
A1.AVIADA_LJ,
A1.AVIADA_DT,
C.NOMECLIENTE,
M.NOMEMEDICO,
A1.VALORVENDA,
A1.DESCONTO,
A1.CARTAOATENDIMENTO,
A1.CODIGO_ATEND_FL,
A1.CODIGO_ATEND_E,
A1.CODIGO_ATEND_PV,
A1.ENTREGUE_CF,
RM.CODIGO_ATENDIMENTO_A1,
A1.DESCARTE_CF,
A1.VALORVENDA_DESC
) as benz ";

    //echo $sql_Produto_especifico;
    // Executar a consulta SQL para o produto específico
    $resultProdutoEspecifico = ibase_query($connection, $sql_Produto_especifico);
    $rowProdutoEspecifico = ibase_fetch_assoc($resultProdutoEspecifico);
    $valor_bruto_produto = $rowProdutoEspecifico['VALOR_BRUTO_PRODUTO'];
    $valor_liquido_produto = $rowProdutoEspecifico['VALOR_LIQUIDO_PRODUTO'];

    // 3. Subtraindo os valores do produto específico dos valores gerais
    $valor_bruto_final_manipulado = $valor_bruto_manipulado - $valor_bruto_produto;
    $valor_liquido_final_manipulado = $valor_liquido_manipulado - $valor_liquido_produto;


    // 4. Calculando o percentual de desconto
    if ($valor_liquido_final_manipulado > 0) {
        //$percentual_desconto = (( $valor_liquido_final_manipulado / $valor_bruto_final_manipulado) - 1) * 100;
        $percentual_desconto = (($valor_bruto_final_manipulado - $valor_liquido_final_manipulado) / $valor_bruto_final_manipulado) * 100;
    } else {
        $percentual_desconto = 0; // Evitar divisão por zero
    }

    //Calculando o desconto total
    $valor_bruto_total = $valor_bruto_final_manipulado + $valor_bruto_varejo;
    $valor_liquido_total = $valor_liquido_final_manipulado + $valor_liquido_varejo;

    // 3. Calculando o percentual de desconto total
    if ($valor_liquido_total > 0) {
        $percentual_desconto_total = (($valor_bruto_total - $valor_liquido_total) / $valor_bruto_total) * 100;
    } else {
        $percentual_desconto_total = 0; // Evitar divisão por zero
    }
    //echo $percentual_desconto_total;

    //AQUI COMEÇA AS QUERYS SOBRE ORÇAMENTOS
   $sql_top_10_vendedores_reprovado = " 
	Select
	iif(A1.STATUS_MOV = 0,
  A1.CADASTRO_CF,
  A1.AVIADA_CF) as CDFUN,
            FU.NOMEFUNCIONARIO as NOMEFUN ,
  count(A1.CODIGO) as QUANTIDADE,
  cast(coalesce(sum(A1.VALORVENDA_DESC),0) as numeric (18,2)) as TOTAL_VENDAS
  from ATENDIMENTO_A1 A1
   inner join FUNCIONARIO FU on FU.CODIGO = iif(A1.STATUS_MOV = 0,
  A1.CADASTRO_CF,
  A1.AVIADA_CF)
    where A1.TIPO_ATENDIMENTO = 1
    AND A1.PAGAR_COMISSAO_FUNCIONARIO = '-1'
  AND A1.STATUS_MOV = '0'  
   ";

    if (!empty($codvendedor)) {
        $sql_top_10_vendedores_reprovado .= " AND iif(A1.STATUS_MOV = 0,
  A1.CADASTRO_CF,
  A1.AVIADA_CF)  = $codvendedor  ";
    }

    $sql_top_10_vendedores_reprovado .= "AND CAST(A1.CADASTRO_DT as DATE) BETWEEN '$DataInicial' AND '$DataFinal' ";

    if ($filial && $filial != "Todos") {
        $sql_top_10_vendedores_reprovado .= " AND A1.CADASTRO_LJ  IN ($filial)";
    }
    if (!empty($operacoes) && $operacoes != "NULL") {
        $sql_top_10_vendedores_reprovado .= " AND A1.codigo_tipooperacao NOT IN ($operacoes)";
        //  AND A1.codigo_tipooperacao NOT IN (5, 159, 174, 184, 185, 186, 187, 188, 190, 216, 221, 234, 235, 236, 237, 242, 246, 261, 296, 297)
    }
    $sql_top_10_vendedores_reprovado .= "  GROUP BY CDFUN , NOMEFUN
                                            ORDER BY TOTAL_VENDAS DESC";
    //echo $sql_top_10_vendedores_reprovado ;
    $result_vendedores_reprovado = ibase_query($connection, $sql_top_10_vendedores_reprovado);

    $resultsArrayvendedorreprovado = array();
    while ($row = ibase_fetch_assoc($result_vendedores_reprovado)) {
        $resultsArrayvendedorreprovado[] = $row;
    }
    // $sql_top_10_vendedores_reprovado;

    $sql_top_10_vendedores_aprovados  = "SELECT
   iif(A1.STATUS_MOV = 0,
  A1.CADASTRO_CF,
  A1.AVIADA_CF) as CDFUN,
            FU.NOMEFUNCIONARIO as NOMEFUN ,
  count(A1.CODIGO) as QUANTIDADE,
  cast(coalesce(sum(A1.VALORVENDA_DESC),0) as numeric (18,2)) as TOTAL_VENDAS
  from ATENDIMENTO_A1 A1
   inner join FUNCIONARIO FU on FU.CODIGO = iif(A1.STATUS_MOV = 0,
  A1.CADASTRO_CF,
  A1.AVIADA_CF)
    where A1.TIPO_ATENDIMENTO = 1
    AND A1.PAGAR_COMISSAO_FUNCIONARIO = '-1'
  AND A1.STATUS_MOV = '-1'   
    ";


    if(!empty($codvendedor)) {
        $sql_top_10_vendedores_aprovados .= "AND iif(A1.STATUS_MOV = 0,
  A1.CADASTRO_CF,
  A1.AVIADA_CF)  = $codvendedor  ";
    }

    $sql_top_10_vendedores_aprovados .= "AND CAST(A1.CADASTRO_DT as DATE) BETWEEN '$DataInicial' AND '$DataFinal' ";

    if ($filial && $filial != "Todos") {
        $sql_top_10_vendedores_aprovados  .= " AND A1.CADASTRO_LJ  IN ($filial)";
    }
    if (!empty($operacoes) && $operacoes != "NULL") {
        $sql_top_10_vendedores_aprovados .= " AND A1.codigo_tipooperacao NOT IN ($operacoes)";
        //  AND A1.codigo_tipooperacao NOT IN (5, 159, 174, 184, 185, 186, 187, 188, 190, 216, 221, 234, 235, 236, 237, 242, 246, 261, 296, 297)
    }
    $sql_top_10_vendedores_aprovados  .= "  GROUP BY CDFUN , NOMEFUN
 ORDER BY TOTAL_VENDAS DESC";
    //echo $sql_top_10_vendedores_aprovados;

    $result_vendedores_aprovado = ibase_query($connection, $sql_top_10_vendedores_aprovados);

    // echo '$sql_top_10_vendedores_aprovados '.  $sql_top_10_vendedores_aprovados;
    // exit;

    if (!$result_vendedores_aprovado) {
        die('Erro na consulta Firebird/InterBase: ' . ibase_errmsg());
    }


    $resultsArrayvendedoraprovado = array();
    while ($row = ibase_fetch_assoc($result_vendedores_aprovado)) {
        $resultsArrayvendedoraprovado[] = $row;
    }

    $totalVendasReprovado = 0;
    foreach ($resultsArrayvendedorreprovado as $row) {

        $totalVendasReprovado += $row['TOTAL_VENDAS'];
        //  $totalRealizadoManipulado += $row['TOTAL_VENDAS'];

    }
    $totalVendasReprovadoFormatado = number_format($totalVendasReprovado, 2, ',', '.');

    $totalVendasAprovado = 0;
    foreach ($resultsArrayvendedoraprovado as $row) {

        $totalVendasAprovado += $row['TOTAL_VENDAS'];
        //  $totalRealizadoManipulado += $row['TOTAL_VENDAS'];

    }
    //echo $totalVendasAprovado;
    $totalVendasAprovadoFormatado = number_format($totalVendasAprovado, 2, ',', '.');
    //PEGAR A QUANTIDADE DE ORÇAMENTOS REPROVADOS
    $qtdReprovado = 0;
    foreach ($resultsArrayvendedorreprovado as $row) {

        $qtdReprovado += $row['QUANTIDADE'];
        //  $totalRealizadoManipulado += $row['TOTAL_VENDAS'];

    }
    $qtdReprovadoFormatado = $qtdReprovado;
    //PEGAR A QUANTIDADE DE ORÇAMENTOS APROVADOS
    $qtdAprovado = 0;
    foreach ($resultsArrayvendedoraprovado as $row) {

        $qtdAprovado += $row['QUANTIDADE'];
        //  $totalRealizadoManipulado += $row['TOTAL_VENDAS'];

    }
    $qtdAprovadoFormatado = $qtdAprovado;


    // Calculando o total geral em R$
    $totalGeralVendas = $totalVendasReprovado + $totalVendasAprovado;
    //Calculando o total em quantidade de orçamentos
    $totalqtdorcamentos = $qtdAprovado + $qtdReprovado;

    // Calculando os percentuais
    $percentualReprovado = ($totalGeralVendas != 0) ? ($totalVendasReprovado / $totalGeralVendas) * 100 : 0;
    $percentualAprovado = ($totalGeralVendas != 0) ? ($totalVendasAprovado / $totalGeralVendas) * 100 : 0;
    // Calculando os percentuais da quantidade de orçamentos
    $percentualReprovadoQtd = ($totalqtdorcamentos != 0) ? ($qtdReprovado / $totalqtdorcamentos) * 100 : 0;
    $percentualAprovadoQtd = ($totalqtdorcamentos != 0) ? ($qtdAprovado / $totalqtdorcamentos) * 100 : 0;

    // Formatando os percentuais
    $percentualReprovadoFormatado = number_format($percentualReprovado, 2, ',', '.');
    $percentualAprovadoFormatado = number_format($percentualAprovado, 2, ',', '.');
    // Formatando os percentuais de quantidade de orçamentos
    $percentualReprovadoFormatadoQtd = number_format($percentualReprovadoQtd, 2, ',', '.');
    $percentualAprovadoFormatadoQtd = number_format($percentualAprovadoQtd, 2, ',', '.');




    function get_manipulado($filial, $DataInicial, $DataFinal, $operacoes, $codvendedor)
    {
        global $connection;

        $qry_manipulado = "SELECT        
            count(distinct A1.CODIGO_CLIENTE) as QTD_CLIENTES,
            cast(coalesce(sum(A2.VALORFORMULA_VENDA_DESC),0) as numeric (18,2)) as SOMA
            from ATENDIMENTO_A2 A2
			
            inner join ATENDIMENTO_A1 A1 on A2.CODIGO_ATEND_A1 = A1.CODIGO
			inner join CLIENTE C on A1.CODIGO_CLIENTE = C.CODIGO
            inner join FORMAFARMACEUTICA FF on A2.CODIGO_FORMAFARMACEUTICA = FF.CODIGO
            inner join FUNCIONARIO FU on FU.CODIGO = iif(A1.STATUS_MOV = 0,
            A1.CADASTRO_CF,
            A1.AVIADA_CF)
            inner join EMPRESA EMP on EMP.CODIGO = iif(A1.STATUS_MOV = 0,
            A1.CADASTRO_LJ,
            A1.AVIADA_LJ)
            where A1.TIPO_ATENDIMENTO = 1
            AND A1.status_mov = '-1'
            AND A2.concluidoformula = '-1'
            AND A1.CANCELAMENTO_CF IS NULL
            AND A1.DESCARTE_CF IS NULL  ";
        if (!empty($filial) && $filial !== "Todos") {
            // Se $filial não estiver vazio e não for "Todos", aplicamos o filtro na consulta

            $qry_manipulado .= " and A1.CODIGO_EMPRESA_PADRAO IN ($filial)";
        }
        // Aplicar filtros de ano e mês para a primeira subconsulta
        if (!empty($DataInicial) && !empty($DataFinal)) {
            $qry_manipulado .= " AND  CAST(A1.entregue_dt as DATE)  BETWEEN '$DataInicial' AND '$DataFinal'";
        }

        if (!empty($operacoes) && $operacoes != "NULL") {
            $qry_manipulado .= " AND A1.codigo_tipooperacao NOT IN ($operacoes)";
            //  AND A1.codigo_tipooperacao NOT IN (5, 159, 174, 184, 185, 186, 187, 188, 190, 216, 221, 234, 235, 236, 237, 242, 246, 261, 296, 297)
        }

        if (!empty($codvendedor)) {
            $qry_manipulado .= " AND    iif(A1.STATUS_MOV = 0,A1.CADASTRO_CF,A1.AVIADA_CF) IN ($codvendedor)";
            //  AND A1.codigo_tipooperacao NOT IN (5, 159, 174, 184, 185, 186, 187, 188, 190, 216, 221, 234, 235, 236, 237, 242, 246, 261, 296, 297)
        }

     
         
        
        $qryResult = ibase_query($connection, $qry_manipulado);
        if (!$qryResult) {
            die("Erro na consulta SQL (Manipulado): " . ibase_errmsg());
        }

        $manipulado = array();
        while ($row = ibase_fetch_assoc($qryResult)) {
            $manipulado[] = $row;
        }

        return $manipulado;
    }


    ///REVEND
    function get_revenda($filial, $DataInicial, $DataFinal, $operacoes, $codvendedor)
    {
        global $connection;
        $qry_revenda = "SELECT 
     cast(sum(a3.valorvenda_desc) as numeric (18,2)) AS revenda_total
        from atendimento_a3 a3
     inner join atendimento_a1 a1 on a3.codigo_atend_a1 = a1.codigo
      LEFT JOIN UTIL_REL_AG1 (1) AG ON AG.AG1_OP > 0
     inner join estoque_geral eg on a3.codigo_produto = eg.codigo
          inner join medico md on (md.codigo = a1.codigo_medico)
      left join medico_cr cr on (cr.codigo = md.codigo_conselho_regional)
       INNER JOIN FUNCIONARIO FU ON FU.CODIGO = IIF(AG.AG1_OP = 1, A1.CODIGO_FUNCIONARIO_COMISSAO, A1.AVIADA_CF)
        where a1.tipo_atendimento = 2
         and a3.excluirproduto_cf is null and a1.cancelamento_lj is null and A3.QUANTIDADE > 0
        AND A1.PAGAR_COMISSAO_FUNCIONARIO = '-1'
         AND A1.STATUS_MOV = '-1'";

        if (!empty($operacoes) && $operacoes != "NULL") {
            $qry_revenda .= " AND A1.codigo_tipooperacao NOT IN ($operacoes)";
            //  AND A1.codigo_tipooperacao NOT IN (5, 159, 174, 184, 185, 186, 187, 188, 190, 216, 221, 234, 235, 236, 237, 242, 246, 261, 296, 297)
        }

        $qry_revenda .= "  AND A3.codigo_produto NOT IN ('3024873','3025044')
        AND eg.codigo_estoque_classificacao NOT IN (300002) ";

        if (!empty($filial) && $filial !== "Todos") {
            // Se $filial não estiver vazio e não for "Todos", aplicamos o filtro na consulta

            $qry_revenda .= " and A1.aviada_lj IN ($filial)";
        }

        if (!empty($DataInicial) && !empty($DataFinal)) {
            $qry_revenda .= " AND  CAST(A1.entregue_dt as DATE)  BETWEEN '$DataInicial' AND '$DataFinal'";
        }

        if (!empty($codvendedor)) {
            $qry_revenda .= " AND  IIF(AG.AG1_OP = 1, A1.CODIGO_FUNCIONARIO_COMISSAO, A1.AVIADA_CF) IN ($codvendedor)";
            //  AND A1.codigo_tipooperacao NOT IN (5, 159, 174, 184, 185, 186, 187, 188, 190, 216, 221, 234, 235, 236, 237, 242, 246, 261, 296, 297)
        }

        $qryResultRevenda = ibase_query($connection, $qry_revenda);
        if (!$qryResultRevenda) {
            die("Erro na consulta SQL (Revenda): " . ibase_errmsg());
        }

        $revenda = array();
        while ($row = ibase_fetch_assoc($qryResultRevenda)) {
            $revenda[] = $row;
        }

        return $revenda;
    }

    //MARCA PROPRIA
    function get_marca_propria($filial, $DataInicial, $DataFinal, $operacoes, $codvendedor)
    {
        global $connection;
        $qry_marca = "SELECT 
     cast(sum(a3.valorvenda_desc) as numeric (18,2)) AS MARCA_PROPRIA_TOTAL
 
     from atendimento_a3 a3
     inner join atendimento_a1 a1 on a3.codigo_atend_a1 = a1.codigo
      LEFT JOIN UTIL_REL_AG1 (1) AG ON AG.AG1_OP > 0
     inner join estoque_geral eg on a3.codigo_produto = eg.codigo
     inner join medico md on (md.codigo = a1.codigo_medico)
     left join medico_cr cr on (cr.codigo = md.codigo_conselho_regional)
       INNER JOIN FUNCIONARIO FU ON FU.CODIGO = IIF(AG.AG1_OP = 1, A1.CODIGO_FUNCIONARIO_COMISSAO, A1.AVIADA_CF)
      where a1.tipo_atendimento = 2
      and a3.excluirproduto_cf is null and a1.cancelamento_lj is null and A3.QUANTIDADE > 0
      AND A1.PAGAR_COMISSAO_FUNCIONARIO = '-1'   
     AND A1.STATUS_MOV = '-1'";

        if (!empty($operacoes) && $operacoes != "NULL") {
            $qry_marca .= " AND A1.codigo_tipooperacao NOT IN ($operacoes)";
            //  AND A1.codigo_tipooperacao NOT IN (5, 159, 174, 184, 185, 186, 187, 188, 190, 216, 221, 234, 235, 236, 237, 242, 246, 261, 296, 297)
        }

        $qry_marca .= "
       AND (
      A3.codigo_produto IN ('3024873', '3025044') 
      OR EG.codigo_estoque_classificacao IN (300002) 
        ) ";

        if (!empty($filial) && $filial !== "Todos") {
            // Se $filial não estiver vazio e não for "Todos", aplicamos o filtro na consulta

            $qry_marca .= " and A1.aviada_lj IN ($filial)";
        }

        if (!empty($DataInicial) && !empty($DataFinal)) {
            $qry_marca .= " AND  CAST(A1.entregue_dt as DATE)  BETWEEN '$DataInicial' AND '$DataFinal'";
        }
        if (!empty($codvendedor)) {
            $qry_marca .= " AND  IIF(AG.AG1_OP = 1, A1.CODIGO_FUNCIONARIO_COMISSAO, A1.AVIADA_CF) IN ($codvendedor)";
            //  AND A1.codigo_tipooperacao NOT IN (5, 159, 174, 184, 185, 186, 187, 188, 190, 216, 221, 234, 235, 236, 237, 242, 246, 261, 296, 297)
        }
        

        $qryResultMarca = ibase_query($connection, $qry_marca);
        if (!$qryResultMarca) {
            die("Erro na consulta SQL (Marca Própria): " . ibase_errmsg());
        }

        $Marca = array();
        while ($row = ibase_fetch_assoc($qryResultMarca)) {
            $Marca[] = $row;
        }

        return $Marca;
    }
	
	function get_qtd_produtos($filial, $DataInicial, $DataFinal, $operacoes, $codvendedor)
{
    global $connection;
    $qry_qtd_produtos = "SELECT 
        cast(sum(a3.valorvenda_desc) as numeric (18,2)) AS REVENDA_TOTAL,
        sum(a3.quantidade) AS QUANTIDADE_PRODUTOS_REVENDA
        from atendimento_a3 a3
        inner join atendimento_a1 a1 on a3.codigo_atend_a1 = a1.codigo
        LEFT JOIN UTIL_REL_AG1 (1) AG ON AG.AG1_OP > 0
        inner join estoque_geral eg on a3.codigo_produto = eg.codigo
        INNER JOIN FUNCIONARIO FU ON FU.CODIGO = IIF(AG.AG1_OP = 1, A1.CODIGO_FUNCIONARIO_COMISSAO, A1.AVIADA_CF)
        where a1.tipo_atendimento = 2
        and a3.excluirproduto_cf is null and a1.cancelamento_lj is null and A3.QUANTIDADE > 0
        AND A1.PAGAR_COMISSAO_FUNCIONARIO = '-1'   
        AND A1.STATUS_MOV = '-1'";

    if (!empty($operacoes) && $operacoes != "NULL") {
        $qry_qtd_produtos .= " AND A1.codigo_tipooperacao NOT IN ($operacoes)";
    }

    if (!empty($filial) && $filial !== "Todos") {
        $qry_qtd_produtos .= " and A1.aviada_lj IN ($filial)";
    }

    if (!empty($DataInicial) && !empty($DataFinal)) {
        $qry_qtd_produtos .= " AND CAST(A1.entregue_dt as DATE) BETWEEN '$DataInicial' AND '$DataFinal'";
    }
    if (!empty($codvendedor)) {
        $qry_qtd_produtos .= " AND IIF(AG.AG1_OP = 1, A1.CODIGO_FUNCIONARIO_COMISSAO, A1.AVIADA_CF) IN ($codvendedor)";
    }
	

    $qryResultqtd_produtos = ibase_query($connection, $qry_qtd_produtos);
    if (!$qryResultqtd_produtos) {
        die("Erro na consulta SQL (QTD PRODUTOS): " . ibase_errmsg());
    }

    $Qtd_Produtos = array();
    while ($row = ibase_fetch_assoc($qryResultqtd_produtos)) {
        $Qtd_Produtos[] = $row;
    }

    return $Qtd_Produtos;
}
	
    $total_recebido_modelo_de_vendas = 0;

    if ($exibirManipulado) {
        $marca_propria = get_marca_propria($filial, $DataInicial, $DataFinal, $operacoes, $codvendedor);
        $total_recebido_modelo_de_vendas += $marca_propria[0]['MARCA_PROPRIA_TOTAL'] ?? 0;
    }
    if ($exibirManipulado) {
        $rusult_manipulado = get_manipulado($filial, $DataInicial, $DataFinal, $operacoes, $codvendedor);
        $total_recebido_modelo_de_vendas += $rusult_manipulado[0]['SOMA'] ?? 0;
    }
    if ($exibirManipulado) {
        $result_revenda = get_revenda($filial, $DataInicial, $DataFinal, $operacoes, $codvendedor);
        $total_recebido_modelo_de_vendas += $result_revenda[0]['REVENDA_TOTAL'] ?? 0;
    }
	$total_clientes_manipulados = 0;
    if (!empty($rusult_manipulado)) {
    foreach ($rusult_manipulado as $item) {
        $total_clientes_manipulados += $item['QTD_CLIENTES'];
    }
    }
	$total_manipulado_valor = isset($rusult_manipulado[0]['SOMA']) ? $rusult_manipulado[0]['SOMA'] : 0;
    $ticket_medio_manipulado = 0;
    if ($total_clientes_manipulados > 0) {
    $ticket_medio_manipulado = $total_manipulado_valor / $total_clientes_manipulados;
    }
	
	// Pega os dados de revenda e quantidade de produtos
     $dados_revenda = get_qtd_produtos($filial, $DataInicial, $DataFinal, $operacoes, $codvendedor);

// Inicializa as variáveis
$total_revenda_valor = 0;
$total_qtd_produtos = 0;
$ticket_medio_varejo = 0;

if (!empty($dados_revenda)) {
    $total_revenda_valor = $dados_revenda[0]['REVENDA_TOTAL'] ?? 0;
    $total_qtd_produtos = $dados_revenda[0]['QUANTIDADE_PRODUTOS_REVENDA'] ?? 0;
    
    // Calcula o ticket médio (evita divisão por zero)
    if ($total_qtd_produtos > 0) {
        $ticket_medio_varejo = $total_revenda_valor / $total_qtd_produtos;
    }
}

    //var_dump($rusult_manipulado);
    //var_dump($result_revenda);
    //var_dump($marca_propria);
}

?>

<!DOCTYPE html>
<html lang="pt-br">
<?php
$pageTitle = "Vendedores"; // Definir o título da página aqui
include('../geral/header.php');
?>

<head>
    <style>
        .equal-height {
            height: 143px;
            /* Defina a altura desejada */
        }
    </style>
</head>

<body>

    <body>

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

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

        <div class="wrapper candidato">
            <div class="container-fluid">

                <div class="card-box mt-2">
                    <div class="row align-items-center">

                        <div class="col-12">
                            <form method="get" action="index.php" id="indexForm">
                                <h3>Dashboard Vendedores por Período</h3>
                        </div>

                        <?php echo $filtros->filtroCidade($cidade, $cidades, false, '', true, false); ?>
                        <!-- <div class="col-6 col-md-4 col-lg-2">
                            <label for="cidade" class="col-form-label">Cidade:</label>
                            <select id="cidade" name="cidade" class="form-control">
                                <option value="Todos" <?php echo (!isset($cidade) || $cidade == "Todos") ? "selected" : ""; ?>>Todos</option>
                                <?php foreach ($cidadefiliais as $item) : ?>
                                    <option value="<?= $item['MUNIC']; ?>" <?= isset($cidade) && trim($cidade) == trim($item['MUNIC']) ? "selected" : ""; ?>>
                                        <?php echo $item['MUNIC']; ?>
                                    </option>
                                <?php endforeach; ?>
                            </select>
                        </div> -->

                        <?php 
                            // Chama o novo filtro CheckBox
                            echo $filtros->filtroCheckBoxDashVendedores('filial', $filiaisParaFiltro, $filial); 
                        ?>               


                        <div class="form-group col-6 col-md-4 col-lg-2">
                            <label for="DataInicial" class="col-form-label">Data Inicial<span class="text-danger">*</span></label>
                            <input type="date" id="DataInicial" name="DataInicial" class="form-control" value="<?php echo isset($DataInicial) ? $DataInicial : ''; ?>" oninput="validarCampo('DataInicial', this.value)">
                        </div>

                        <div class="form-group col-6 col-md-4 col-lg-2">
                            <label for="DataFinal" class="col-form-label">Data Final<span class="text-danger">*</span></label> 
                            <input type="date" id="DataFinal" name="DataFinal" class="form-control" value="<?php echo isset($DataFinal) ? $DataFinal : ''; ?>" oninput="validarCampo('DataFinal', this.value)">
                        </div>

                        <?php
                        // Supondo que $codvendedor e $vendedorlojas estejam disponíveis
                        $nomeVendedor = '';
                        if (isset($codvendedor) && !empty($codvendedor)) {
                            foreach ($vendedorlojas as $ven) {
                                if ($ven['CDFUN'] == $codvendedor) {
                                    $nomeVendedor = htmlspecialchars($ven['NOMEFUN']);
                                    break;
                                }
                            }
                        }
                        ?>

                        <div class="form-group col-6 col-md-4 col-lg-3 mt-3">
                            <label for="nomevendedor" class="form-label">
                                Vendedor
                                <span id="btnLimparVendedor" 
                                    style="cursor: pointer; font-size: 0.8em; color: #dc3545; margin-left: 5px; display: none;" 
                                    onclick="limparVendedor()">
                                    Limpar
                                </span>
                            </label>
                            
                            <div class="form-group input-group">
                                <input type="text" id="nomevendedor" class="form-control" placeholder="Nome Vendedor" value="<?php echo $nomeVendedor; ?>" autocomplete="off">
                                <input type="hidden" id="codvendedor" name="codvendedor" value="<?php echo isset($codvendedor) ? htmlspecialchars($codvendedor) : ''; ?>">
                            </div>
                            
                            <div id="acessoDropdown" class="dropdown-menu" style="width: 100%;">
                                <?php foreach ($vendedorlojas as $ven) : ?>
                                    <a class="dropdown-item" href="#" 
                                       data-nome="<?php echo htmlspecialchars($ven['NOMEFUN']); ?>" 
                                       data-id_ven="<?php echo htmlspecialchars($ven['CDFUN']); ?>"
                                       data-cdcon="<?php echo htmlspecialchars($ven['CDFILIAL']); ?>">
                                        <?php echo htmlspecialchars($ven['NOMEFUN']); ?>
                                    </a>
                                <?php endforeach; ?>
                            </div>
                        </div>

                        <div class="col-6 col-md-4 col-lg-1 mt-3 text-right">
                            <div>
                                <button name="pesquisar" class="btn btn-primary ml-1" type="submit">Pesquisar</button>
                            </div>
                        </div>

                        </form>
                    </div>
                </div>
                
    <?php if (isset($_GET['pesquisar'])) { ?>
    <?php include('aproveitamento.php'); ?>

    <div class="card">
        <h4 style="text-align: center; margin: 21px 0;">
            <?php
            if (!empty($codvendedor) && isset($rowsresult_nome_fun['NOMEFUN'])) {
                $nome_vendedor = mb_convert_encoding($rowsresult_nome_fun['NOMEFUN'], 'UTF-8', 'ISO-8859-1');
                echo "Vendedor(a): " . $nome_vendedor;
            } else {
                echo "Geral Vendedores";
            }
            ?>
        </h4>
    </div>

    <style>
    .cards-geral * { box-sizing: border-box; }

    .cards-geral .section-title {
        font-size: 14px;
        font-weight: 700;
        letter-spacing: 1.5px;
        text-transform: uppercase;
        color: #98a6ad;
        margin: 14px 0 8px 4px;
    }

    .cards-geral .cards-row {
        display: grid;
        grid-template-columns: repeat(4, 1fr);
        gap: 12px;
    }
    .cards-geral .cards-row-3 {
        display: grid;
        grid-template-columns: repeat(3, 1fr);
        gap: 12px;
    }
    .cards-geral .cards-row-6 {
        display: grid;
        grid-template-columns: repeat(6, 1fr);
        gap: 12px;
    }

    .cards-geral .kpi-card {
        background: #fff;
        border-radius: 10px;
        box-shadow: 0 1px 4px rgba(0,0,0,0.07);
        padding: 16px 18px;
        display: flex;
        flex-direction: column;
        justify-content: space-between;
        transition: box-shadow 0.2s, transform 0.2s;
        position: relative;
        overflow: hidden;
    }
    .cards-geral .kpi-card:hover {
        box-shadow: 0 4px 18px rgba(0,0,0,0.11);
        transform: translateY(-2px);
    }

    /* ACCENT BORDER */
    .cards-geral .kpi-card::before {
        content: '';
        position: absolute;
        left: 0; top: 0; bottom: 0;
        width: 4px;
        border-radius: 10px 0 0 10px;
    }
    .cards-geral .acc-blue::before   { background: #4a90e2; }
    .cards-geral .acc-green::before  { background: #28a745; }
    .cards-geral .acc-red::before    { background: #dc3545; }
    .cards-geral .acc-orange::before { background: #fd7e14; }
    .cards-geral .acc-teal::before   { background: #20c997; }
    .cards-geral .acc-purple::before { background: #6f42c1; }
    .cards-geral .acc-yellow::before { background: #e6a800; }
    .cards-geral .acc-gray::before   { background: #6c757d; }

    /* HEADER ROW */
    .cards-geral .kpi-header {
        display: flex;
        align-items: flex-start;
        justify-content: space-between;
        margin-bottom: 10px;
    }
    .cards-geral .kpi-label {
        font-size: 13px;
        font-weight: 700;
        color: #98a6ad;
        text-transform: uppercase;
        letter-spacing: 0.6px;
        line-height: 1.4;
        max-width: 150px;
    }

    /* ICON */
    .cards-geral .kpi-icon {
        width: 38px;
        height: 38px;
        border-radius: 9px;
        display: flex;
        align-items: center;
        justify-content: center;
        font-size: 16px;
        flex-shrink: 0;
    }
    .cards-geral .ico-blue   { background: #e8f1fb; color: #4a90e2; }
    .cards-geral .ico-green  { background: #e6f4ea; color: #28a745; }
    .cards-geral .ico-red    { background: #fdecea; color: #dc3545; }
    .cards-geral .ico-orange { background: #fff3e0; color: #fd7e14; }
    .cards-geral .ico-teal   { background: #e0f5ef; color: #20c997; }
    .cards-geral .ico-purple { background: #f0ebfa; color: #6f42c1; }
    .cards-geral .ico-yellow { background: #fffbe0; color: #e6a800; }
    .cards-geral .ico-gray   { background: #f1f3f5; color: #6c757d; }

    /* VALUE */
    .cards-geral .kpi-value {
        font-size: 21px;
        font-weight: 800;
        line-height: 1.1;
        margin-bottom: 4px;
        color: #343a40;
    }
    .cards-geral .kpi-value.c-green  { color: #28a745; }
    .cards-geral .kpi-value.c-red    { color: #dc3545; }
    .cards-geral .kpi-value.c-blue   { color: #4a90e2; }
    .cards-geral .kpi-value.c-teal   { color: #20c997; }
    .cards-geral .kpi-value.c-orange { color: #fd7e14; }
    .cards-geral .kpi-value.c-purple { color: #6f42c1; }
    .cards-geral .kpi-value.c-yellow { color: #e6a800; }

    /* SUB */
    .cards-geral .kpi-sub {
        font-size: 11.5px;
        color: #98a6ad;
        font-weight: 600;
        display: flex;
        align-items: center;
        gap: 5px;
        flex-wrap: wrap;
        line-height: 1.5;
    }

    /* BADGE */
    .cards-geral .kbadge {
        display: inline-flex;
        align-items: center;
        gap: 3px;
        padding: 2px 8px;
        border-radius: 20px;
        font-size: 10.5px;
        font-weight: 700;
    }
    .cards-geral .kbadge-lg {
        display: inline-flex;
        align-items: center;
        gap: 4px;
        padding: 4px 11px;
        border-radius: 20px;
        font-size: 13px;
        font-weight: 800;
        letter-spacing: 0.2px;
    }
    .cards-geral .kb-green  { background: #e6f4ea; color: #28a745; }
    .cards-geral .kb-red    { background: #fdecea; color: #dc3545; }
    .cards-geral .kb-blue   { background: #e8f1fb; color: #4a90e2; }
    .cards-geral .kb-orange { background: #fff3e0; color: #fd7e14; }
    .cards-geral .kb-teal   { background: #e0f5ef; color: #20c997; }
    .cards-geral .kb-purple { background: #f0ebfa; color: #6f42c1; }
    .cards-geral .kb-yellow { background: #fffbe0; color: #e6a800; }

    /* PROGRESS */
    .cards-geral .kpi-progress { margin-top: 10px; }
    .cards-geral .kpi-track {
        height: 5px;
        background: #f1f3f5;
        border-radius: 4px;
        overflow: hidden;
    }
    .cards-geral .kpi-fill { height: 100%; border-radius: 4px; }
    .cards-geral .f-green  { background: #28a745; }
    .cards-geral .f-red    { background: #dc3545; }
    .cards-geral .f-blue   { background: #4a90e2; }
    .cards-geral .f-teal   { background: #20c997; }
    .cards-geral .f-orange { background: #fd7e14; }
    .cards-geral .f-purple { background: #6f42c1; }
    .cards-geral .f-yellow { background: #e6a800; }

    @media (max-width: 1200px) {
        .cards-geral .cards-row-6 { grid-template-columns: repeat(3, 1fr); }
    }
    @media (max-width: 992px) {
        .cards-geral .cards-row,
        .cards-geral .cards-row-3,
        .cards-geral .cards-row-6 { grid-template-columns: repeat(2, 1fr); }
    }
    @media (max-width: 576px) {
        .cards-geral .cards-row,
        .cards-geral .cards-row-3,
        .cards-geral .cards-row-6 { grid-template-columns: 1fr; }
    }
    </style>

    <div class="col-12 cards-geral" style="margin-bottom: 40px;">

        <!-- ══════════════════════════════════
             GRUPO 1 — APROVEITAMENTO & DESCONTOS
        ══════════════════════════════════ -->
        <div class="section-title">Aproveitamento & Descontos</div>
        <div class="cards-row-6">

            <!-- Realizado Geral -->
            <div class="kpi-card acc-green">
                <div class="kpi-header">
                    <span class="kpi-label">Realizado Geral</span>
                    <div class="kpi-icon ico-green"><i class="mdi mdi-chart-line"></i></div>
                </div>
                <div class="kpi-value c-green">
                    R$ <?php echo number_format($total_recebido_modelo_de_vendas, 2, ',', '.'); ?>
                </div>
                <div class="kpi-sub">total recebido no período</div>
            </div>

            <!-- Aproveitamento Geral -->
            <div class="kpi-card acc-teal">
                <div class="kpi-header">
                    <span class="kpi-label">Aproveitamento Geral</span>
                    <div class="kpi-icon ico-teal"><i class="mdi mdi-gauge"></i></div>
                </div>
                <div class="kpi-value c-teal">
                    <?php echo $geral; ?>%
                </div>
                <div class="kpi-sub">% de produtos adicionais Varejo</div>
                <div class="kpi-progress">
                    <div class="kpi-track">
                        <div class="kpi-fill f-teal" style="width: <?php echo min(100, floatval($geral)); ?>%"></div>
                    </div>
                </div>
            </div>

            <!-- Aproveitamento Marca Própria -->
            <div class="kpi-card acc-purple">
                <div class="kpi-header">
                    <span class="kpi-label">Aproveitamento Marca Própria</span>
                    <div class="kpi-icon ico-purple"><i class="mdi mdi-star-outline"></i></div>
                </div>
                <div class="kpi-value c-purple">
                    <?php echo $marca; ?>%
                </div>
                <div class="kpi-sub">% de produtos adicionais Marca Própria</div>
                <div class="kpi-progress">
                    <div class="kpi-track">
                        <div class="kpi-fill f-purple" style="width: <?php echo min(100, floatval($marca)); ?>%"></div>
                    </div>
                </div>
            </div>

            <!-- Desconto Manipulado -->
            <div class="kpi-card acc-orange">
                <div class="kpi-header">
                    <span class="kpi-label">Desconto Manipulado</span>
                    <div class="kpi-icon ico-orange"><i class="mdi mdi-percent-outline"></i></div>
                </div>
                <div class="kpi-value c-orange">
                    <?php echo formatarNumero($percentual_desconto); ?>%
                </div>
                <div class="kpi-sub">sobre valor total manipulado</div>
                <div class="kpi-progress">
                    <div class="kpi-track">
                        <div class="kpi-fill f-orange" style="width: <?php echo min(100, floatval($percentual_desconto)); ?>%"></div>
                    </div>
                </div>
            </div>

            <!-- Desconto Varejo -->
            <div class="kpi-card acc-yellow">
                <div class="kpi-header">
                    <span class="kpi-label">Desconto Varejo</span>
                    <div class="kpi-icon ico-yellow"><i class="mdi mdi-percent-outline"></i></div>
                </div>
                <div class="kpi-value c-yellow">
                    <?php echo formatarNumero($percentual_desconto_varejo); ?>%
                </div>
                <div class="kpi-sub">sobre valor total varejo</div>
                <div class="kpi-progress">
                    <div class="kpi-track">
                        <div class="kpi-fill f-yellow" style="width: <?php echo min(100, floatval($percentual_desconto_varejo)); ?>%"></div>
                    </div>
                </div>
            </div>

            <!-- Desconto Total -->
            <div class="kpi-card acc-orange">
                <div class="kpi-header">
                    <span class="kpi-label">Desconto Total</span>
                    <div class="kpi-icon ico-orange"><i class="mdi mdi-percent-outline"></i></div>
                </div>
                <div class="kpi-value c-orange">
                    <?php echo formatarNumero($percentual_desconto_total); ?>%
                </div>
                <div class="kpi-sub">média geral de descontos</div>
                <div class="kpi-progress">
                    <div class="kpi-track">
                        <div class="kpi-fill f-orange" style="width: <?php echo min(100, floatval($percentual_desconto_total)); ?>%"></div>
                    </div>
                </div>
            </div>

        </div>

        <!-- ══════════════════════════════════
             GRUPO 2 — ORÇAMENTOS
        ══════════════════════════════════ -->
        <div class="section-title">Orçamentos</div>
        <div class="cards-row">

            <!-- Orçamento Aprovado -->
            <div class="kpi-card acc-green">
                <div class="kpi-header">
                    <span class="kpi-label">Orçamento Aprovado</span>
                    <div class="kpi-icon ico-green"><i class="mdi mdi-check-circle-outline"></i></div>
                </div>
                <div style="display:flex; align-items:center; gap:8px; flex-wrap:wrap;">
                    <span class="kpi-value c-green" style="margin-bottom:0;">
                        R$ <?php echo $totalVendasAprovadoFormatado; ?>
                    </span>
                    <span class="kbadge-lg kb-green">
                        <?php echo $percentualAprovadoFormatado; ?>%
                    </span>
                </div>
                <div style="display:flex; align-items:center; gap:8px; margin-top:6px; flex-wrap:wrap;">
                    <span style="font-size:15px; font-weight:700; color:#343a40;">
                        <?php echo $qtdAprovadoFormatado; ?> orç. aprovados
                    </span>
                    <span class="kbadge-lg kb-green">
                        <?php echo $percentualAprovadoFormatadoQtd; ?>%
                    </span>
                </div>
                <div class="kpi-progress">
                    <div class="kpi-track">
                        <div class="kpi-fill f-green" style="width: <?php echo min(100, floatval($percentualAprovadoFormatado)); ?>%"></div>
                    </div>
                </div>
            </div>

            <!-- Orçamento Reprovado -->
            <div class="kpi-card acc-red">
                <div class="kpi-header">
                    <span class="kpi-label">Orçamento Reprovado</span>
                    <div class="kpi-icon ico-red"><i class="mdi mdi-close-circle-outline"></i></div>
                </div>
                <div style="display:flex; align-items:center; gap:8px; flex-wrap:wrap;">
                    <span class="kpi-value c-red" style="margin-bottom:0;">
                        R$ <?php echo $totalVendasReprovadoFormatado; ?>
                    </span>
                    <span class="kbadge-lg kb-red">
                        <?php echo $percentualReprovadoFormatado; ?>%
                    </span>
                </div>
                <div style="display:flex; align-items:center; gap:8px; margin-top:6px; flex-wrap:wrap;">
                    <span style="font-size:15px; font-weight:700; color:#343a40;">
                        <?php echo $qtdReprovadoFormatado; ?> orç. reprovados
                    </span>
                    <span class="kbadge-lg kb-red">
                        <?php echo $percentualReprovadoFormatadoQtd; ?>%
                    </span>
                </div>
                <div class="kpi-progress">
                    <div class="kpi-track">
                        <div class="kpi-fill f-red" style="width: <?php echo min(100, floatval($percentualReprovadoFormatado)); ?>%"></div>
                    </div>
                </div>
            </div>

            <!-- Total Demanda R$ -->
            <div class="kpi-card acc-blue">
                <div class="kpi-header">
                    <span class="kpi-label">Total Demanda dos Orçamentos</span>
                    <div class="kpi-icon ico-blue"><i class="mdi mdi-wallet-outline"></i></div>
                </div>
                <div class="kpi-value">
                    R$ <?php echo number_format($totalGeralVendas, 2, ',', '.'); ?>
                </div>
                <div class="kpi-sub">valor total demandado</div>
            </div>

            <!-- Total Demanda QTD -->
            <div class="kpi-card acc-orange">
                <div class="kpi-header">
                    <span class="kpi-label">Total Demanda QTD</span>
                    <div class="kpi-icon ico-orange"><i class="mdi mdi-file-document-outline"></i></div>
                </div>
                <div class="kpi-value c-orange">
                    <?php echo $totalqtdorcamentos; ?>
                </div>
                <div class="kpi-sub">total de orçamentos</div>
            </div>

        </div>

        <!-- ══════════════════════════════════
             GRUPO 3 — MANIPULADO
        ══════════════════════════════════ -->
        <div class="section-title">Manipulado</div>
        <div class="cards-row-3">

            <!-- Recebidos Manipulado -->
            <div class="kpi-card acc-teal">
                <div class="kpi-header">
                    <span class="kpi-label">Recebidos Manipulado</span>
                    <div class="kpi-icon ico-teal"><i class="mdi mdi-flask-outline"></i></div>
                </div>
                <div class="kpi-value c-teal">
                    R$ <?php echo isset($rusult_manipulado[0]['SOMA'])
                        ? number_format($rusult_manipulado[0]['SOMA'], 2, ',', '.')
                        : '0,00'; ?>
                </div>
                <div class="kpi-sub">valor recebido manipulado</div>
            </div>

            <!-- Clientes Recebidos Manipulado -->
            <div class="kpi-card acc-yellow">
                <div class="kpi-header">
                    <span class="kpi-label">Clientes Recebidos Manipulado</span>
                    <div class="kpi-icon ico-yellow"><i class="mdi mdi-account-group-outline"></i></div>
                </div>
                <div class="kpi-value c-yellow">
                    <?php echo number_format($total_clientes_manipulados, 0, ',', '.'); ?>
                </div>
                <div class="kpi-sub">clientes únicos atendidos</div>
            </div>

            <!-- Ticket Médio Manipulado -->
            <div class="kpi-card acc-orange">
                <div class="kpi-header">
                    <span class="kpi-label">Ticket Médio — Clientes Recebido Manipulado</span>
                    <div class="kpi-icon ico-orange"><i class="mdi mdi-calculator"></i></div>
                </div>
                <div class="kpi-value c-orange">
                    R$ <?php echo number_format($ticket_medio_manipulado, 2, ',', '.'); ?>
                </div>
                <div class="kpi-sub">médio por cliente manipulado</div>
            </div>

        </div>

        <!-- ══════════════════════════════════
             GRUPO 4 — VAREJO & MARCA PRÓPRIA
        ══════════════════════════════════ -->
        <div class="section-title">Varejo & Marca Própria</div>
        <div class="cards-row-3">

            <!-- Recebidos Varejo -->
            <div class="kpi-card acc-blue">
                <div class="kpi-header">
                    <span class="kpi-label">Recebidos Varejo</span>
                    <div class="kpi-icon ico-blue"><i class="mdi mdi-store-outline"></i></div>
                </div>
                <div class="kpi-value c-blue">
                    R$ <?php echo isset($result_revenda[0]['REVENDA_TOTAL'])
                        ? number_format($result_revenda[0]['REVENDA_TOTAL'], 2, ',', '.')
                        : '0,00'; ?>
                </div>
                <div class="kpi-sub">valor recebido revenda</div>
            </div>

            <!-- Ticket Médio Varejo -->
            <div class="kpi-card acc-orange">
                <div class="kpi-header">
                    <span class="kpi-label">Ticket Médio Varejo — Por Qtd de Produtos</span>
                    <div class="kpi-icon ico-orange"><i class="mdi mdi-receipt"></i></div>
                </div>
                <div class="kpi-value c-orange">
                    R$ <?php echo number_format($ticket_medio_varejo, 2, ',', '.'); ?>
                </div>
                <div class="kpi-sub">
                    <span class="kbadge kb-orange">
                        <?php echo number_format($total_qtd_produtos, 0, ',', '.'); ?> produtos vendidos
                    </span>
                </div>
                <div class="kpi-sub">Revenda / Quantidade de Produtos</div>
            </div>

            <!-- Marca Própria R$ -->
            <div class="kpi-card acc-purple">
                <div class="kpi-header">
                    <span class="kpi-label">Marca Própria</span>
                    <div class="kpi-icon ico-purple"><i class="mdi mdi-star-outline"></i></div>
                </div>
                <div class="kpi-value c-purple">
                    R$ <?php echo isset($marca_propria[0]['MARCA_PROPRIA_TOTAL'])
                        ? number_format($marca_propria[0]['MARCA_PROPRIA_TOTAL'], 2, ',', '.')
                        : '0,00'; ?>
                </div>
                <div class="kpi-sub">valor recebido marca própria</div>
            </div>

        </div>

    </div>

<?php } ?>
                <!-- ============================================================== -->
                <!-- End Page content -->
                <!-- ============================================================== -->

                <!-- Footer Start -->
                <?php
                include('../geral/footer.php');
                ?>
                <!-- end Footer -->

                <?php
                include('../geral/mensagens_modais.php');
                ?>


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

                <!-- knob plugin -->
                <script src="../../assets/libs/jquery-knob/jquery.knob.min.js"></script>
                <!-- App js-->
                <script src="../../assets/js/app.min.js"></script>

                <script src="../geral/javascript.js"></script>



                <link href="https://cdnjs.cloudflare.com/ajax/libs/select2/4.1.0-beta.1/css/select2.min.css" rel="stylesheet" />

                <script src="https://cdnjs.cloudflare.com/ajax/libs/select2/4.1.0-beta.1/js/select2.min.js"></script>
                <link href="../../assets/css/style.css" rel="stylesheet" />
                <script src="https://code.jquery.com/jquery-3.6.4.min.js" integrity="sha512-oM6mM1F9AXFB0Wex8m2lsBE5SS+ZnQTzK41z6bNPZbs9VbQbf8weQbVVgRNGLLWu8xh6PzpE7Fj3oT4kgTDMpw==" crossorigin="anonymous"></script>
                <script src="../../assets/js/funcoes.js"></script> 

                <script>
                    // Inicializa o dropdown visual (função do template)
                    if(typeof initDropdownFilter === 'function') {
                        initDropdownFilter('filial');
                    }

                    document.getElementById('filial_input').addEventListener('keyup', function() {
                        const filter = this.value.toLowerCase();
                        const items = document.querySelectorAll('.filial-dropdown-item');
                        
                        items.forEach(function(item) {
                            // Pega o texto do label dentro do item
                            const text = item.textContent || item.innerText;
                            if (text.toLowerCase().indexOf(filter) > -1) {
                                item.style.display = "";
                            } else {
                                item.style.display = "none";
                            }
                        });
                    }); 

                    // O PHP gera onchange="updateSelectedItemsfilial()", então definimos ela aqui.
                    window.updateSelectedItemsfilial = function() { 
                        const checkboxes = document.querySelectorAll('.filial-checkbox');
                        const selectedIds = [];
                        const selectedNames = [];

                        // 1. Percorre TODAS as caixas para ver o estado atual real
                        checkboxes.forEach(function(cb) {
                            if (cb.checked) {
                                const id = cb.getAttribute('data-filial-id').trim();
                                const nome = cb.getAttribute('data-filial-name');

                                selectedIds.push(id);
                                selectedNames.push(nome);
                            }
                        });

                        // 2. Atualiza o input hidden com a lista completa separada por vírgulas
                        document.getElementById('filialselecionados').value = selectedIds.join(',');
 
                        // 3. Atualiza interface (botão limpar e lista de vendedores)
                        const inputVisual = document.getElementById('filial_input'); 
                        if (selectedIds.length > 0) {
                            inputVisual.value = selectedNames.join(', '); // Mostra nomes separados por vírgula
                        } else {
                            inputVisual.value = ''; // Limpa se não tiver nada
                        }
                        toggleClearButton();
                        filterVendedoresByFilial();
                    }

                    // Função do Botão Limpar
                    window.toggleDeleteAllfilial = function() {
                        const checkboxes = document.querySelectorAll('.filial-checkbox');
                        checkboxes.forEach(cb => {
                            cb.checked = false;
                            cb.parentElement.style.display = ""; // Reseta o filtro de pesquisa visual se tiver escondido
                        });
                        
                        // Zera o input
                        document.getElementById('filialselecionados').value = '';
                        document.getElementById('filial_input').value = '';

                        // Chama a atualização para refletir nos vendedores
                        window.updateSelectedItemsfilial();
                    }
                    
                    // Função para limpar o campo de vendedor
                    window.limparVendedor = function() {
                        document.getElementById('nomevendedor').value = '';
                        document.getElementById('codvendedor').value = '';
                        document.getElementById('btnLimparVendedor').style.display = 'none';
                    }

                    // --- FUNÇÃO DE CONTROLE DE EXIBIÇÃO DO BOTÃO ---
                    function toggleBtnLimparVendedor() {
                        const cod = document.getElementById('codvendedor').value;
                        const btn = document.getElementById('btnLimparVendedor');
                        if (cod && cod.trim() !== '') {
                            btn.style.display = 'inline';
                        } else {
                            btn.style.display = 'none';
                        }
                    }

                    document.addEventListener('DOMContentLoaded', function() {

                        // Verifica ao carregar a página se deve mostrar o botão (se já veio filtrado do PHP)
                        toggleBtnLimparVendedor();          

                        // --- FUNÇÕES AUXILIARES ---
                        function filterVendedoresByFilial() {
                            const hiddenInput = document.getElementById('filialselecionados');
                            if (!hiddenInput) return;

                            // Pega o valor atual (ex: "1,2,5") e transforma em array
                            const val = hiddenInput.value;
                            const selectedFiliais = val ? val.split(',') : [];
                            
                            const items = document.querySelectorAll('#acessoDropdown .dropdown-item');

                            items.forEach(function(item) {
                                const vendedorFilial = item.getAttribute('data-cdcon');
                                // Se nada selecionado, mostra tudo. Se tem seleção, filtra.
                                if (selectedFiliais.length === 0 || selectedFiliais.includes(vendedorFilial)) {
                                    item.style.display = 'block';
                                } else {
                                    item.style.display = 'none';
                                }
                            });
                        }

                        function toggleClearButton() {
                            const hiddenInput = document.getElementById('filialselecionados');
                            const btnClear = document.getElementById('filial_clear_btn');
                            if (hiddenInput && btnClear) {
                                btnClear.style.display = (hiddenInput.value !== '') ? 'inline-block' : 'none';
                            }
                        }

                        // --- INICIALIZAÇÃO AO CARREGAR A PÁGINA ---
                        
                        const hiddenInput = document.getElementById('filialselecionados');
                        
                        // Se o PHP mandou valores (via input value ou variavel JS), marcamos as caixas
                        if (hiddenInput && hiddenInput.value) {
                            const idsParaMarcar = hiddenInput.value.split(',').map(s => s.trim());
                            const checkboxes = document.querySelectorAll('.filial-checkbox');
                            const nomesIniciais = [];

                            checkboxes.forEach(function(cb) {
                                const id = cb.getAttribute('data-filial-id').trim();
                                if (idsParaMarcar.includes(id)) {
                                    cb.checked = true;
                                    nomesIniciais.push(cb.getAttribute('data-filial-name'));
                                }
                            }); 
                            
                            const inputVisual = document.getElementById('filial_input');
                            if(inputVisual && nomesIniciais.length > 0) {
                                inputVisual.value = nomesIniciais.join(', ');
                            }

                            // Aplica filtros visuais iniciais
                            toggleClearButton();
                            filterVendedoresByFilial();
                        }         
                        
                        function setupDropdown(inputId, dropdownId) {
                            const input = document.getElementById(inputId);
                            const dropdown = document.getElementById(dropdownId);

                            input.addEventListener('focus', function() {
                                dropdown.style.display = 'block';
                            });

                            input.addEventListener('input', function() {
                                const filterValue = this.value.toLowerCase();
                                const items = dropdown.querySelectorAll('.dropdown-item');

                                items.forEach(function(item) {
                                    if (item.textContent.toLowerCase().includes(filterValue)) {
                                        item.style.display = 'block';
                                    } else {
                                        item.style.display = 'none';
                                    }
                                });
                                dropdown.style.display = filterValue ? 'block' : 'none';
                            });

                            dropdown.addEventListener('click', function(e) {
                                if (e.target.classList.contains('dropdown-item') || e.target.closest('.dropdown-item')) {
                                    // Garante o clique mesmo se clicar no ícone dentro do item
                                    const item = e.target.classList.contains('dropdown-item') ? e.target : e.target.closest('.dropdown-item');

                                    const selectedId = e.target.getAttribute('data-id_ven');
                                    const selectedName = e.target.getAttribute('data-nome');

                                    // Define o valor do input como o nome do vendedor
                                    input.value = selectedName;
                                    // Armazena o código do vendedor no campo oculto
                                    document.getElementById('codvendedor').value = selectedId;
                                    dropdown.style.display = 'none';

                                    // --- MOSTRA O BOTÃO LIMPAR AO SELECIONAR ---
                                    toggleBtnLimparVendedor();
                                }
                            });

                            document.addEventListener('click', function(e) {
                                if (!input.contains(e.target) && !dropdown.contains(e.target)) {
                                    dropdown.style.display = 'none';
                                }
                            });
                        }

                        // Configura o dropdown para o campo de vendedor
                        setupDropdown('nomevendedor', 'acessoDropdown');
                    });

                    $(document).ready(function() {
                        // Função para validar campos dinamicamente
                        function validarCampo(id, valor) {
                            const campo = document.getElementById(id);
                            let campoValido = true;

                            if (!valor.trim()) {
                                campoValido = false;
                                campo.classList.add('is-invalido');
                            } else {
                                campo.classList.remove('is-invalido');
                            }
                            return campoValido;
                        }

                        // Event listeners para validar campos ao digitar
                        $('#DataInicial').on('input', function() {
                            validarCampo('DataInicial', this.value);
                        });

                        $('#DataFinal').on('input', function() {
                            validarCampo('DataFinal', this.value);
                        });

                        $('#codvendedor').on('input', function() {
                            validarCampo('codvendedor', this.value);
                        });
                        $('#filial').on('input', function() {
                            validarCampo('filial', this.value);
                        });


                        $(document).ready(function() {
                            var filialSelecionada = <?php echo intval($filial) ?>;

                            // Função para preencher o combo de filiais
                            function carregarFiliais(cidade) {
                                $.ajax({
                                    url: 'get_filiais.php',
                                    type: 'POST',
                                    dataType: 'json',
                                    data: {
                                        cidade: cidade
                                    },
                                    success: function(data) {
                                        $('#filial').empty();
                                        $('#filial').append('<option value="Todos">Todos</option>');
                                        data.forEach(function(item) {
                                            var selected = item.CDFIL === filialSelecionada ? ' selected' : '';
                                            $('#filial').append('<option value="' + item.CDFIL + '"' + selected + '>' + item.DESCRFIL + '</option>');
                                        });
                                    },
                                    error: function(xhr, status, error) {
                                        alert('Erro na chamada AJAX: ' + status + ' - ' + error);
                                    }
                                });
                            }

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

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


                            var form = document.getElementById("indexForm");
                            form.addEventListener("submit", function(event) {
                                var campoInicial = document.getElementById("DataInicial");
                                var campoFinal = document.getElementById("DataFinal");
                                var dataInicial = campoInicial.value.trim();
                                var dataFinal = campoFinal.value.trim();
                                var mensagens = [];

                                // Verificar se os campos de data não estão vazios
                                if (!dataInicial || !dataFinal) {
                                    mensagens.push('Por favor, informe um período válido.');
                                    campoInicial.classList.add('is-invalido');
                                    campoFinal.classList.add('is-invalido');
                                } else {
                                    campoInicial.classList.remove('is-invalido');
                                    campoFinal.classList.remove('is-invalido');

                                    // Converter as datas para objetos Date
                                    dataInicial = new Date(dataInicial);
                                    dataFinal = new Date(dataFinal);

                                    // Verificar se a data inicial é maior que a final
                                    if (dataInicial > dataFinal) {
                                        mensagens.push('A data inicial não pode ser maior que a data final.');
                                        campoInicial.classList.add('is-invalido');
                                        campoFinal.classList.add('is-invalido');
                                    } else {
                                        campoInicial.classList.remove('is-invalido');
                                        campoFinal.classList.remove('is-invalido');
                                    }
                                }

                                // Validar campo codvendedor
                                // const codvendedorValido = validarCampo('codvendedor');
                                // if (!codvendedorValido) {
                                //     mensagens.push('Por favor, informe um vendedor.');
                                // }

                                if (mensagens.length > 0) {
                                    showModal('exampleModal', 'Informação', mensagens.join('<br>'));
                                    event.preventDefault(); // Impede o envio do formulário
                                }
                            });

                            function verificarErroNaURL() {
                                const urlParams = new URLSearchParams(window.location.search);
                                const errorMessage = urlParams.get('error');
                                if (errorMessage) {
                                    showModal('exampleModal', 'Erro', errorMessage);
                                }
                            }

                            window.onload = verificarErroNaURL;

                            function validarCampo(id) {
                                const campo = document.getElementById(id);
                                const valor = campo.value.trim();
                                let campoValido = true;

                                if (!valor) {
                                    campoValido = false;

                                    // Verifica se o campo é o select de filiais
                                    if (id === 'filial') {
                                        document.getElementById('filialx').classList.add('is-invalido');
                                    }

                                    campo.classList.add('is-invalido');
                                } else {
                                    // Remove a classe de erro se o campo estiver válido
                                    if (id === 'filial') {
                                        document.getElementById('filialx').classList.remove('is-invalido');
                                    }

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

                                return campoValido;
                            }


                            function showModal(modalId, title, message) {
                                const modalElement = document.getElementById(modalId);
                                const modal = new bootstrap.Modal(modalElement);
                                modalElement.querySelector('.modal-title').textContent = title;
                                modalElement.querySelector('.modal-body p').innerHTML = message;
                                modal.show();
                            }
                        });
                    });
                </script>                
                <style>
                    .is-invalido {
                        box-shadow: 0 0 5px red !important;
                    }

                    .dropdown-menu {
                        display: none;
                        max-height: 300px;
                        overflow-y: auto;
                        position: absolute;
                        z-index: 1000;
                    }

                    .dropdown-item {
                        cursor: pointer;
                    }

                    .card {
                        border-radius: 35px;
                    }
                </style>
    </body>

</html>