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

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

$configuracoes = new Configuracoes();
$nome_para_vendedores = $configuracoes->get_nomeclatura_vendedor(true);
$nome_para_vendedor = $configuracoes->get_nomeclatura_vendedor();
$ConfiguracaoMetas = new ConfiguracaoMetas($connectionmysql);
$ConsultaPermissoes = $ConfiguracaoMetas->consultaPermissoes();
$consulta_bb = new ConsultaBancoDeDados();
$ConsultaPainelVendedores = new ConsultaPainelVendedores();
$filtros = new Filtros();

$cidades = $consulta_bb->get_cidades();
$filiais = $consulta_bb->get_filiais();
$meu_periodo = $configuracoes->getPeriodo();



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

$maxColunas = 9; // Total de colunas desejadas
$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++;
    }
}

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

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


$hojeFormatado = date('Y-m-d');
$mesAtual = date('m', strtotime($hojeFormatado));
$anoAtual = date('Y', strtotime($hojeFormatado));

$ids = array_column($filiais, 'ID');
$ids_filial = implode(',', $ids);
$filial = !empty($_GET['filial']) ? $_GET['filial'] : $ids_filial;
$data_de_entregaFinal = $_GET['data_de_entregaFinal'] ?? null;
$data_de_entregaInicial = $_GET['data_de_entregaInicial'] ?? null;
$cidade = $_GET['cidade'] ?? null;
$periodo = $_GET['periodo'] ?? 'mes';

$url = http_build_query([
    'cidade' => $cidade,
    'data_de_entregaFinal' => $data_de_entregaFinal,
    'data_de_entregaInicial' => $data_de_entregaInicial,
    'filial' => $filial,
    'periodo' => $periodo,
    'form_submitted' => isset($_GET['form_submitted']) ? $_GET['form_submitted'] : '',
]);

//$result_realizado = $ConsultaPainelVendedores->getTerceirosDetalhadoVendedor($ano, $mes, $filial, null, false, $connectionmysql);

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

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

    // // Verifica se a cidade não é "Todos"
    // $caixaliberado = $configuracoes->getCaixaLiberado($ano, $mes);

    // if ($cidade !== "Todos") {
    //     // QUERY PARA PEGAR CIDADE ESCOLHIDA
    //     $query_idcidade = "SELECT id_cidade FROM cidade WHERE id_cidade = '$cidade'";
    //     $result_idcidade = $connectionmysql->query($query_idcidade);
    //     if (!$result_idcidade) {
    //         die('Erro na consulta: ' . $connectionmysql->error);
    //     }
    //     $row_idcidade = $result_idcidade->fetch_assoc();
    //     $id_cidade_atual = $row_idcidade["id_cidade"];

    //     // QUERY PARA PEGAR O VALOR DO DIA ÚTIL

    //     $peso_diaatual = $configuracoes->getPesoDiaAtual($mes, $ano, $id_cidade_atual, $periodo);
    //     $pesoUltimoDia = $configuracoes->getPesoUltimoDia($mes, $ano, $id_cidade_atual, $periodo);
    // }
    // if ($cidade == "Todos") {
    //     // QUERY PARA PEGAR O VALOR DO DIA ÚTIL
    //     $peso_diaatual = $configuracoes->getPesoAtualTodos($mes, $ano, $caixaliberado, $periodo);
    //     $pesoUltimoDia = $configuracoes->getPesoUltimoDiaTodos($mes, $ano, $periodo);
    // }


   if ($exibirManipulado) {
        $qry_manipulado = "SELECT
        iif(A1.STATUS_MOV = 0,A1.CADASTRO_CF,A1.AVIADA_CF) as CDFUNRE,
        FU.NOMEFUNCIONARIO as NOMEFUN,
        COUNT(A1.codigo) as qtd_atendimentos,
        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 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($data_de_entregaInicial) && !empty($data_de_entregaFinal)) {
            $qry_manipulado .= " AND CAST(A1.entregue_dt  as DATE)  BETWEEN '$data_de_entregaInicial' AND '$data_de_entregaFinal'";
        }


        $qry_manipulado .= " GROUP BY  CDFUNRE, FU.NOMEFUNCIONARIO ";


        $qryResult = ibase_query($connection, $qry_manipulado);

        if (!$qryResult) {
            die("Erro na consulta SQL (Manipulado): " . ibase_errmsg());
        }
    }


    ///REVENDA
    if ($exibirRevenda) {
        $qry_revenda = "SELECT 
        IIF(AG.AG1_OP = 1, A1.CODIGO_FUNCIONARIO_COMISSAO, A1.AVIADA_CF) as CDFUNRE,
        FU.NOMEFUNCIONARIO as NOMEFUN, 
        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($data_de_entregaInicial) && !empty($data_de_entregaFinal)) {
            $qry_revenda .= " AND  CAST(A1.entregue_dt AS DATE) BETWEEN '$data_de_entregaInicial' AND '$data_de_entregaFinal'";
        }

        $qry_revenda .= "  GROUP BY NOMEFUN ,CDFUNRE";

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

    //MARCA PROPRIA
    if ($exibirMarcaPropria) {
        $qry_marca = "SELECT 
            IIF(AG.AG1_OP = 1, A1.CODIGO_FUNCIONARIO_COMISSAO, A1.AVIADA_CF) as CDFUNRE,
            FU.NOMEFUNCIONARIO as NOMEFUN, 
        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($data_de_entregaInicial) && !empty($data_de_entregaFinal)) {
            $qry_marca .= " AND CAST(A1.entregue_dt AS DATE) BETWEEN '$data_de_entregaInicial' AND '$data_de_entregaFinal'";
        }

        $qry_marca .= "
        GROUP BY NOMEFUN ,CDFUNRE";

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

    $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' 
        AND CAST(A1.CADASTRO_DT as DATE) BETWEEN '$data_de_entregaInicial' AND '$data_de_entregaFinal' ";

    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)";
    }
    $sql_top_10_vendedores_reprovado .= "  GROUP BY CDFUN , NOMEFUN
        ORDER BY TOTAL_VENDAS DESC";

    $sql_top_10_vendedores_reprovado_result = ibase_query($connection, $sql_top_10_vendedores_reprovado);
    if (!$sql_top_10_vendedores_reprovado_result) {
        die("Erro na consulta SQL (Marca Própria): " . ibase_errmsg());
    }
    $vendedores_reprovado_result = [];
    while ($row = ibase_fetch_assoc($sql_top_10_vendedores_reprovado_result)) {
        //$row['NOMEFUN'] = mb_convert_encoding($row['NOMEFUN'], 'UTF-8', 'ISO-8859-1');
        $vendedores_reprovado_result[$row['CDFUN']] = $row;
    }


    //SQL VENDAS DE TERCEIROS
    $sql_terceiros = "SELECT f.nome, SUM(t.valor) as valor_terceiros, t.cod_filial, f.cod_fcerta FROM pedido_terceiro as t
            INNER JOIN funcionarios as f ON t.ID_FUNCIONARIO = f.id_funcionario
            WHERE 1=1";

    // Aplicar filtros de ano e mês para a terceira subconsulta

    if (!empty($data_de_entregaInicial) && !empty($data_de_entregaFinal)) {
        $sql_terceiros .= " AND  t.data_lancamento BETWEEN '$data_de_entregaInicial' AND '$data_de_entregaFinal'";
    }
    if ($periodo && $periodo != "mes") {
        if ($periodo == 1) {
            $sql_terceiros .= " AND EXTRACT(day FROM t.data_lancamento) <= 15 ";
        } elseif ($periodo == 2) {
            $sql_terceiros .= " AND EXTRACT(day FROM t.data_lancamento) > 15 ";
        }
    }
    // Aplicar o filtro da filial
    if ($filial && $filial != "Todos") {
        $sql_terceiros .= " AND t.cod_filial in ($filial)";
    }
    $sql_terceiros .= " GROUP BY f.nome, t.cod_filial, f.cod_fcerta";

    // Executar a consulta SQL
    $result_terceiros = $connectionmysql->query($sql_terceiros);

    // Verificar se a consulta foi bem sucedida
    if ($result_terceiros) {
        // Inicializar a variável para armazenar o total de terceiros
        $total_terceiros = 0;

        // Verificar se há linhas retornadas pela consulta
        if ($result_terceiros->num_rows > 0) {
            // Loop pelas linhas do resultado
            // Loop pelas linhas do resultado

        } else {
            // Não há registros retornados pela consulta
            //echo "Nenhum resultado encontrado.";
        }
    } else {
        // Houve um erro ao executar a consulta
        die('Erro na consulta: ' . $connectionmysql->error);
    }
}
if (!isset($peso_diaatual)) {
    $peso_diaatual = 0;
}
if (!isset($pesoUltimoDia)) {
    $pesoUltimoDia = 0;
}


?>

<!DOCTYPE html>
<html lang="pt-br">
<?php
$pageTitle = "Painel $nome_para_vendedores";
include('../geral/header.php');
?>

<body>
    <!-- Navigation Bar-->
    <?php
    include('../geral/menu.php');
    ?>
    <!-- ============================================================== -->
    <!-- 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">
                        <h3 class="page-title"><?= $pageTitle ?></h3>
                    </div>

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

                    <div class="col-12 mb-2">
                        <form method="get" action="index.php" id="indexForm" onsubmit="return validarFormulario()">
                            <div class="form-row mb-3">
                                <?php
                                echo $filtros->filtroCidade($cidade, $cidades, false, '', 2);
                                echo $filtros->filtroCheckBox('filial', $filiais, null, false, false);
                                echo $filtros->FiltroDataInicioFim('Data De Entrega');
                                ?>

                                <input type="hidden" name="form_submitted" value="1" />


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

                            </div>
                        </form>
                    </div>
                </div>

                <?php if (isset($_GET['form_submitted']) && $_GET['form_submitted'] == '1') { ?>
                    <div style="display: flex; justify-content: space-between; align-items: center;" class="mb-2">
                        <h6>Lista <?= $nome_para_vendedores ?></h6>
                    </div>
                    <div class="table-responsive"> <!-- Adicione a classe table-responsive aqui -->
                        <table id="tableresponsive" class="table table-bordered table-hover table-sm" style="width: 100%;">
                            <thead class="thead-light text-center">
                                <tr class="text-center">
                                    <th class="text-center">Vendedor</th>
                                    <?php if ($exibirManipulado) { ?>
                                        <th class="text-center">Manipulado</th>
                                    <?php } ?>
                                    <?php if ($result_terceiros->num_rows > 0) {  ?>
                                        <th class="text-center">Terceiros</th>
                                    <?php } ?>
                                    <?php if ($exibirManipulado) { ?>
                                        <th class="text-center">Qtd Clientes Manipulado</th>
                                        <th class="text-center">Ticket Médio Manipulado</th>
                                    <?php } ?>

                                    <?php if ($exibirRevenda) { ?>
                                        <th class="text-center">Revenda</th>
                                    <?php } ?>

                                    <?php if ($exibirMarcaPropria) { ?>
                                        <th class="text-center">Marca Própria</th>
                                    <?php } ?>

                                    <th>Orçamento Rejeitado R$</th>
                                    <th>Orçamento Rejeitado Qtd</th>
                                </tr>
                            </thead>
                            <tbody>

                                <?php
                                // Criar arrays associativos para armazenar os resultados
                                // Criar arrays associativos para armazenar os resultados
                                $dataManipulado = [];
                                $dataRevenda = [];
                                $dataMarca = [];
                                $nomesVendedores = []; // Novo array para armazenar nomes dos vendedores

                                if ($exibirManipulado) {
                                    // Buscar dados de manipulado
                                    while ($row = ibase_fetch_assoc($qryResult)) {
                                        //$row['NOMEFUN'] = mb_convert_encoding($row['NOMEFUN'], 'UTF-8', 'ISO-8859-1');

                                        $dataManipulado[$row['CDFUNRE']] = $row;
                                        $nomesVendedores[$row['CDFUNRE']] = $row['NOMEFUN']; // Adiciona o nome do vendedor
                                    }
                                }

                                if ($exibirRevenda) {
                                    // Buscar dados de revenda
                                    while ($row = ibase_fetch_assoc($qryResultRevenda)) {
                                        $dataRevenda[$row['CDFUNRE']] = $row['REVENDA_TOTAL'];

                                        // Adicionar vendedor se não estiver na lista de manipulado
                                        if (!isset($nomesVendedores[$row['CDFUNRE']])) {
                                            $nomesVendedores[$row['CDFUNRE']] = $row['NOMEFUN'];
                                            $dataManipulado[$row['CDFUNRE']] = 0; // Valor zerado para manipulado
                                        }
                                    }
                                }

                                if ($exibirMarcaPropria) {
                                    // Buscar dados de marca própria
                                    while ($row = ibase_fetch_assoc($qryResultMarca)) {
                                        $dataMarca[$row['CDFUNRE']] = $row['MARCA_PROPRIA_TOTAL'];

                                        // Adicionar vendedor se não estiver na lista de manipulado
                                        if (!isset($nomesVendedores[$row['CDFUNRE']])) {
                                            $nomesVendedores[$row['CDFUNRE']] = $row['NOMEFUN'];
                                            $dataManipulado[$row['CDFUNRE']] = 0; // Valor zerado para manipulado
                                        }
                                    }
                                }

                                // Inicializar totais
                                $totalManipulado = 0;
                                $totalRevenda = 0;
                                $totalMarca = 0;
                                $total = 0;
                                $total_vendedor = 0;
                                $qtd_atendimentos_vendedor_total  = 0;
                                $vendedores_ticket_medio_total = 0;
                                $vendedores_reprovado_qtd_total  = 0;
                                $vendedores_reprovado_valor_total = 0;

                                // Calcular totais e gerar linhas da tabela
                                foreach ($dataManipulado as $cdfunre => $manipulado) {
                                    $total_vendedor += 1;
                                    $manipulado = $manipulado['SOMA'] ?? 0;
                                    $revenda = $dataRevenda[$cdfunre] ?? 0;
                                    $marca_propria = $dataMarca[$cdfunre] ?? 0;
                                    $qtd_atendimentos_vendedor = $dataManipulado[$cdfunre]['QTD_ATENDIMENTOS'] ?? 0;
                                    $vendedores_reprovado_valor = $vendedores_reprovado_result[$cdfunre]['TOTAL_VENDAS'] ?? 0;
                                    $vendedores_reprovado_qtd = $vendedores_reprovado_result[$cdfunre]['QUANTIDADE'] ?? 0;
                                    $manipulado = (float) $manipulado;
                                    $qtd_atendimentos_vendedor = (int) $qtd_atendimentos_vendedor;

                                    if ($qtd_atendimentos_vendedor > 0) {
                                        $vendedores_ticket_medio = $manipulado / $qtd_atendimentos_vendedor;
                                    } else {
                                        $vendedores_ticket_medio = 0;
                                    }
                                    $nomefun = $nomesVendedores[$cdfunre] ?? '';



                                ?>

                                    <tr class='text-center'>
                                        <td>
                                            <!-- <span class="open-modal-btn" data-codigo="<?php echo htmlspecialchars($cdfunre); ?>" data-nome="<?php echo htmlspecialchars($nomefun); ?>" data-toggle="modal" data-target="#exampleModal" style="cursor: pointer; font-family: 'Roboto', sans-serif; font-weight: bold;"> -->
                                            <?php
                                            $partes_nome = explode(' ', trim($nomefun));

                                            if (count($partes_nome) >= 2) {
                                                $primeiro_nome = $partes_nome[0];
                                                $ultimo_nome = $partes_nome[count($partes_nome) - 1];

                                                echo $primeiro_nome . ' ' . $ultimo_nome;
                                            } else {
                                                // Nome incompleto, exibe como está
                                                echo $nomefun;
                                            }

                                            ?>
                                            <!-- </span> -->
                                        </td>

                                        <?php
                                        if ($exibirManipulado) { ?>

                                            <td data-order="<?= number_format($manipulado, 2, '.', ''); ?>">
                                                <div align='center'>R$ <?php echo htmlspecialchars(number_format($manipulado, 2, ',', '.')); ?></div>
                                            </td>
                                            <!-- Calcula o total de terceiros -->
                                            <?php
                                            $total_terceiros = 0; // Inicializa o total de terceiros
                                            foreach ($result_terceiros as $row) {
                                                if ($row['cod_fcerta'] == $cdfunre) {
                                                    // Se o Código  Pharmacie corresponder ao código de funcionário atual
                                                    $total_terceiros += $row['valor_terceiros']; // Adiciona ao total de terceiros
                                                }
                                            }
                                            ?>
                                            <?php if ($result_terceiros->num_rows > 0) : ?>
                                                <!-- Exibe o total de terceiros -->
                                                <td data-order="<?= number_format($total_terceiros, 2, '.', ''); ?>">R$ <?= number_format($total_terceiros, 2, ',', '.') ?></td>
                                            <?php endif; ?>


                                            <td data-order="<?= number_format($qtd_atendimentos_vendedor, 0, '.', ''); ?>">
                                                <div align='center'> <?php echo htmlspecialchars(number_format($qtd_atendimentos_vendedor, 0, ',', '.')); ?></div>
                                            </td>

                                            <td data-order="<?= number_format($vendedores_ticket_medio, 2, '.', ''); ?>">
                                                <div align='center'>R$ <?php echo htmlspecialchars(number_format($vendedores_ticket_medio, 2, ',', '.')); ?></div>
                                            </td>
                                        <?php } ?>

                                        <?php if ($exibirRevenda) { ?>
                                            <td data-order="<?= number_format($revenda, 2, '.', ''); ?>">
                                                <div align='center'>R$ <?php echo htmlspecialchars(number_format($revenda, 2, ',', '.')); ?></div>
                                            </td>
                                        <?php } ?>

                                        <?php if ($exibirMarcaPropria) { ?>
                                            <td data-order="<?= number_format($marca_propria, 2, '.', ''); ?>">
                                                <div align='center'>R$ <?php echo htmlspecialchars(number_format($marca_propria, 2, ',', '.')); ?></div>
                                            </td>
                                        <?php } ?>

                                        <td data-order="<?php echo $vendedores_reprovado_valor ?>">
                                            <div align='center'>R$ <?php echo htmlspecialchars(number_format($vendedores_reprovado_valor, 2, ',', '.')); ?></div>
                                        </td>
                                        <td data-order="<?php echo $vendedores_reprovado_qtd ?>">
                                            <div align='center'> <?php echo htmlspecialchars(number_format($vendedores_reprovado_qtd, 0, ',', '.')); ?></div>
                                        </td>

                                    </tr>

                                <?php
                                    $qtd_atendimentos_vendedor_total += $qtd_atendimentos_vendedor;
                                    $vendedores_ticket_medio_total += $vendedores_ticket_medio;
                                    $vendedores_reprovado_qtd_total += $vendedores_reprovado_qtd;
                                    $vendedores_reprovado_valor_total += $vendedores_reprovado_valor;
                                    $totalManipulado += $manipulado;
                                    $totalRevenda += $revenda;
                                    $totalMarca += $marca_propria;
                                    $total_terceiros += $total_terceiros;
                                }
                                ?>

                                <thead class="thead-light">
                                            <tr class="text-center">
                                                <th class="text-center">Total</th>
                                                <!-- Totais de Manipulado -->
                                                <?php if ($exibirManipulado) { ?>
                                                    <th class="text-center" data-order="<?= number_format($totalManipulado, 2, '.', ''); ?>">R$ <?php echo htmlspecialchars(number_format($totalManipulado, 2, ',', '.')); ?></th>
                                                    
                                                    <?php if ($result_terceiros->num_rows > 0) : ?>
                                                        <!-- Exibe a coluna de terceiros apenas se houver algum resultado na consulta -->
                                                        <th class="text-center">R$ <?php echo htmlspecialchars(number_format($total_terceiros, 2, ',', '.')); ?></th>
                                                    <?php endif; ?>
                                                    
                                                    <th class="text-center" data-order="<?= number_format($qtd_atendimentos_vendedor_total, 0, '.', ''); ?>"> <?php echo htmlspecialchars(number_format($qtd_atendimentos_vendedor_total, 0, ',', '.')); ?></th>

                                                    <!-- CORREÇÃO: Cálculo correto do ticket médio total -->
                                                    <th class="text-center" data-order="<?= number_format(($qtd_atendimentos_vendedor_total > 0 ? $totalManipulado / $qtd_atendimentos_vendedor_total : 0), 2, '.', ''); ?>">
                                                        R$ <?php echo htmlspecialchars(number_format(($qtd_atendimentos_vendedor_total > 0 ? $totalManipulado / $qtd_atendimentos_vendedor_total : 0), 2, ',', '.')); ?>
                                                    </th>
                                                <?php } ?>
                                                
                                                <!-- Totais de Revenda -->
                                                <?php if ($exibirRevenda) { ?>
                                                    <th class="text-center" data-order="<?= number_format($totalRevenda, 2, '.', ''); ?>">R$ <?php echo htmlspecialchars(number_format($totalRevenda, 2, ',', '.')); ?></th>
                                                <?php } ?>

                                                <!-- Totais de Marca Própria -->
                                                <?php if ($exibirMarcaPropria) { ?>
                                                    <th class="text-center" data-order="<?= number_format($totalMarca, 2, '.', ''); ?>">R$ <?php echo htmlspecialchars(number_format($totalMarca, 2, ',', '.')); ?></th>
                                                <?php } ?>
                                                
                                                <!-- Totais de Orçamento Rejeitado -->
                                                <th class="text-center" data-order="<?= number_format($vendedores_reprovado_valor_total, 2, '.', ''); ?>">R$ <?php echo htmlspecialchars(number_format($vendedores_reprovado_valor_total, 2, ',', '.')); ?></th>
                                                <th class="text-center" data-order="<?= number_format($vendedores_reprovado_qtd_total, 0, '.', ''); ?>"> <?php echo htmlspecialchars(number_format($vendedores_reprovado_qtd_total, 0, ',', '.')); ?></th>
                                            </tr>
</thead>

                            </tbody>
                        </table>
                    </div>
                <?php } ?>
            </div>
        </div>
    </div>
    <!-- ============================================================== -->
    <!-- End Page content -->
    <!-- ============================================================== -->

    <!-- Footer Start -->
    <?php include('../geral/footer.php'); ?>
    <!-- Msg Modal Start -->
    <?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="../../assets/js/funcoes.js"></script>
    <script src="../geral/javascript.js"></script>

    <!-- Data Table -->
    <script src="https://code.jquery.com/jquery-3.6.0.min.js"></script>
    <script src="https://cdn.datatables.net/1.11.3/js/jquery.dataTables.min.js"></script>
    <script src="https://cdn.datatables.net/1.11.3/js/dataTables.bootstrap5.min.js"></script>
    <link rel="stylesheet" href="https://cdn.datatables.net/1.11.3/css/dataTables.bootstrap5.min.css">
    <!--Botões Data Table -->
    <script src="https://cdn.datatables.net/buttons/2.0.1/js/dataTables.buttons.min.js"></script>
    <script src="https://cdnjs.cloudflare.com/ajax/libs/jszip/3.1.3/jszip.min.js"></script>
    <script src="https://cdnjs.cloudflare.com/ajax/libs/pdfmake/0.1.66/pdfmake.min.js"></script>
    <script src="https://cdnjs.cloudflare.com/ajax/libs/pdfmake/0.1.66/vfs_fonts.js"></script>
    <script src="https://cdn.datatables.net/buttons/2.0.1/js/buttons.html5.min.js"></script>
    <link rel="stylesheet" href="https://cdn.datatables.net/buttons/2.0.1/css/buttons.dataTables.min.css">
    <link rel="stylesheet" href="../../assets/css/resetedatatable.css">

</body>

</html>


<script>
    initDropdownFilter('filial');

    $(document).ready(function() {
        var table = $('#tableresponsive').DataTable({
            "language": {
                "url": "https://cdn.datatables.net/plug-ins/1.10.21/i18n/Portuguese-Brasil.json"
            },
            "ordering": true,
            "responsive": true,
            "searching": true,
            "paging": true,
            "lengthChange": false,
            "info": false,
            "order": [
                 [0, "asc"] 
            ],
            "buttons": [
                //'copyHtml5',
                'excelHtml5',
                //'csvHtml5',
                //'pdfHtml5'
            ],
            //"dom": 'Bfrtip',
            dom: '<"d-flex justify-content-between align-items-center mb-2"Bf>t<"datatable-footer d-flex justify-content-between align-items-center mt-2 w-100"<"footer-left"l><"footer-center"i><"footer-right"p>>',

        });
    });

    function showModal(title, message) {
        const modal = new bootstrap.Modal(document.getElementById('exampleModal'));
        const modalTitle = document.querySelector('.modal-title');
        const modalBody = document.querySelector('.modal-body p');

        modalTitle.textContent = title;
        modalBody.textContent = message;

        modal.show();
    }

    function validarCampo(id) {
        let campo = document.getElementById(id);
        return campo.value.trim(); // Retorna o valor do campo após remover espaços em branco
    }

    function adicionarClasseErro(campo) {
        campo.classList.add('is-invalido');
    }

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

    function validarFormulario() {
        let data_de_entregaInicial = validarCampo("data_de_entregaInicial");
        let data_de_entregaFinal = validarCampo("data_de_entregaFinal");


        let data_de_entregaInicialCampo = document.getElementById("data_de_entregaInicial");
        let data_de_entregaFinalCampo = document.getElementById("data_de_entregaFinal");

        if (data_de_entregaInicial === '' || data_de_entregaFinal === '') {
            adicionarClasseErro(data_de_entregaInicialCampo);
            adicionarClasseErro(data_de_entregaFinalCampo);
            showModal('Informação', 'As datas de inicial e final são obrigatórias para realizar a consulta.');
            return false;
        }

        if (new Date(data_de_entregaInicial) > new Date(data_de_entregaFinal)) {
            adicionarClasseErro(data_de_entregaInicialCampo);
            adicionarClasseErro(data_de_entregaFinalCampo);
            showModal('Erro', 'A data inicial não pode ser maior que a data final.');
            return false;
        }

        if (!algumPreenchido) {
            showModal('Informação', 'Pelo menos um campo deve estar preenchido para realizar a consulta.');
            return false;
        }

        return true;
    }

    function verificarDatas() {
        const data_de_entregaInicialCampo = document.getElementById("data_de_entregaInicial");
        const data_de_entregaFinalCampo = document.getElementById("data_de_entregaFinal");

        const data_de_entregaInicial = data_de_entregaInicialCampo.value.trim();
        const data_de_entregaFinal = data_de_entregaFinalCampo.value.trim();

        // Garante que a data está no formato completo YYYY-MM-DD
        const regexData = /^\d{4}-\d{2}-\d{2}$/;

        if (!regexData.test(data_de_entregaInicial) || !regexData.test(data_de_entregaFinal)) {
            // Não faz nada enquanto a digitação ainda está incompleta
            return;
        }

        // Garante que o ano não é inferior a 1900 (evita casos como 0002)
        const anoFinal = parseInt(data_de_entregaFinal.split("-")[0]);
        if (anoFinal < 1900) {
            return; // ainda está digitando, ou valor inválido
        }

        removerClasseErro(data_de_entregaInicialCampo);
        removerClasseErro(data_de_entregaFinalCampo);

        if (new Date(data_de_entregaInicial) > new Date(data_de_entregaFinal)) {
            adicionarClasseErro(data_de_entregaInicialCampo);
            adicionarClasseErro(data_de_entregaFinalCampo);
            showModal('Erro', 'A data inicial não pode ser maior que a data final.');
        }
    }

    document.getElementById("data_de_entregaInicial").addEventListener('input', function() {
        removerClasseErro(this);
        verificarDatas();
    });

    document.getElementById("data_de_entregaFinal").addEventListener('input', function() {
        removerClasseErro(this);
        verificarDatas();
    });

    window.onload = verificarErroNaURL;
</script>
<style>
    .is-invalido {
        box-shadow: 0 0 5px red !important;
    }
</style>