<?php
require '../conexao/conexao.php';
require '../configuracao/get_config.php';
require '../querys/query-configuracao-metas.php';
require './consulta_bd.php';
$configuracoes = new Configuracoes();

$ConfiguracaoMetas = new ConfiguracaoMetas($connectionmysql);

$ConsultaPermissoes = $ConfiguracaoMetas->consultaPermissoes();
$consulta_comercial = new ConsultaComercial();
$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++;
    }
}

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

$peso_diaatual = 0;
$pesoUltimoDia = 0;
$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));

$ano = $_GET['ano'] ?? null;
$mes = $_GET['mes'] ?? null;
$filial = $_GET['filial'] ?? null;
$diasrestantes = $_GET['diasrestantes'] ?? null;
$cidade = $_GET['cidade'] ?? null;
$periodo = $_GET['periodo'] ?? null;
$semana = $_GET['semana'] ?? null;

// PREPARAÇÃO DE DATAS OTIMIZADAS
$ano_formatado = str_pad($ano, 4, '0', STR_PAD_LEFT);
$mes_formatado = str_pad($mes, 2, '0', STR_PAD_LEFT);
$ultimo_dia = date("t", mktime(0, 0, 0, $mes_formatado, 1, $ano_formatado));

$data_inicio_sql = "$ano_formatado-$mes_formatado-01";
$data_fim_sql    = "$ano_formatado-$mes_formatado-$ultimo_dia";

if ($periodo == 1) {
    $data_fim_sql = "$ano_formatado-$mes_formatado-15";
} elseif ($periodo == 2) {
    $data_inicio_sql = "$ano_formatado-$mes_formatado-16";
}

if (!empty($semana) && $semana != 'mes') {
    $periodo_semana = $configuracoes->getPeriodoSemana($ano, $mes, $semana);
    if ($periodo_semana) {
        $data_inicio_sql = $periodo_semana['data_inicial'];
        $data_fim_sql    = $periodo_semana['data_final'];
    }
}

// Trava a data do banco no dia anterior (Ontem)
if (!empty($data_fim_sql)) {
    $data_ontem = date('Y-m-d', strtotime('-1 day'));
    if ($data_fim_sql > $data_ontem) {
        $data_fim_sql = $data_ontem;
    }
}

$caixaliberado = $configuracoes->getCaixaLiberado($ano, $mes, $filial);
if ($cidade !== "Todos") {
    // Obter ID da cidade
    $id_cidade_atual = $consulta_comercial->getIdCidade($cidade);

    if ($id_cidade_atual) {
        // Obter peso do dia atual
        $peso_diaatual = $configuracoes->getPesoDiaAtual($mes, $ano, $id_cidade_atual, $periodo, $semana);

        // Obter peso do último dia
        $pesoUltimoDia = $configuracoes->getPesoUltimoDia($mes, $ano, $id_cidade_atual, $periodo, $semana);
    }
} else {
    // Se a cidade for "Todos", usar os métodos específicos
    $peso_diaatual = $configuracoes->getPesoAtualTodos($mes, $ano, $caixaliberado, $periodo, $semana);
    $pesoUltimoDia = $configuracoes->getPesoUltimoDiaTodos($mes, $ano, $caixaliberado, $periodo, $semana);
}
$diasrestantes = $pesoUltimoDia - $peso_diaatual;

//echo $peso_diaatual ;
//echo "--";
//Secho $pesoUltimoDia ; 

if ($exibirManipulado) {
    $qry_manipulado = "select
  iif(A1.STATUS_MOV = 0,A1.CADASTRO_CF,A1.AVIADA_CF) as CDFUNRE,
  FU.NOMEFUNCIONARIO as NOMEFUN,

  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 ($ano && $ano != "Selecione") {
    //     $qry_manipulado .= " AND EXTRACT(YEAR FROM A1.entregue_dt) = " . intval($ano);
    // }
    // if ($mes && $mes != "Selecione") {
    //     $qry_manipulado .= " AND EXTRACT(MONTH FROM A1.entregue_dt) = " . intval($mes);
    // }

    // if (!empty($periodo) && $periodo != "mes") {
    //     if ($periodo == 1) {
    //         $qry_manipulado .= " AND EXTRACT(day FROM A1.entregue_dt) <= 15 ";
    //     } elseif ($periodo == 2) {
    //         $qry_manipulado .= " AND EXTRACT(day FROM A1.entregue_dt) > 15 ";
    //     }
    // }
    // if (!empty($semana) && $semana != 'mes') {
    //     $qry_manipulado .= " AND  A1.entregue_dt BETWEEN '$data_inicio' AND '$data_fim'";
    // }

    if (!empty($data_inicio_sql) && !empty($data_fim_sql)) {
        $qry_manipulado .= " AND CAST(A1.entregue_dt AS DATE) BETWEEN '$data_inicio_sql' AND '$data_fim_sql' ";
    }

    $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 ($ano && $ano != "Selecione") {
    //     $qry_revenda .= " AND EXTRACT(YEAR FROM A1.entregue_dt) = " . intval($ano);
    // }
    // if ($mes && $mes != "Selecione") {
    //     $qry_revenda .= " AND EXTRACT(MONTH FROM A1.entregue_dt) = " . intval($mes);
    // }
    // if (!empty($semana) && $semana != 'mes') {
    //     $qry_revenda .= " AND  A1.entregue_dt BETWEEN '$data_inicio' AND '$data_fim'";
    // }
    // if (!empty($periodo) && $periodo != "mes") {
    //     if ($periodo == 1) {
    //         $qry_revenda .= " AND EXTRACT(day FROM A1.entregue_dt) BETWEEN 1 AND 15 ";
    //     } elseif ($periodo == 2) {
    //         $qry_revenda .= " AND EXTRACT(day FROM A1.entregue_dt) > 15 ";
    //     }
    // }

    if (!empty($data_inicio_sql) && !empty($data_fim_sql)) {
        $qry_revenda .= " AND CAST(A1.entregue_dt AS DATE) BETWEEN '$data_inicio_sql' AND '$data_fim_sql' ";
    }
    $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 ($ano && $ano != "Selecione") {
    //     $qry_marca .= " AND EXTRACT(YEAR FROM A1.entregue_dt) = " . intval($ano);
    // }
    // if ($mes && $mes != "Selecione") {
    //     $qry_marca .= " AND EXTRACT(MONTH FROM A1.entregue_dt) = " . intval($mes);
    // }
    // if (!empty($periodo) && $periodo != "mes") {
    //     if ($periodo == 1) {
    //         $qry_marca .= " AND EXTRACT(day FROM A1.entregue_dt) BETWEEN 1 AND 15 ";
    //     } elseif ($periodo == 2) {
    //         $qry_marca .= " AND EXTRACT(day FROM A1.entregue_dt) > 15 ";
    //     }
    // }
    // if (!empty($semana) && $semana != 'mes') {
    //     $qry_marca .= " AND  A1.entregue_dt BETWEEN '$data_inicio' AND '$data_fim'";
    // }

    if (!empty($data_inicio_sql) && !empty($data_fim_sql)) {
        $qry_marca .= " AND CAST(A1.entregue_dt AS DATE) BETWEEN '$data_inicio_sql' AND '$data_fim_sql' ";
    }

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

    $qryResultMarca = ibase_query($connection, $qry_marca);
    if (!$qryResultMarca) {
        die("Erro na consulta SQL (Marca Própria): " . ibase_errmsg());
    }
}
$metas = $consulta_comercial->getMetasVendedores($exibirManipulado, $exibirRevenda, $exibirMarcaPropria, $ano, $mes, $periodo, $filial, $semana);
//print_r($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 ($ano && $ano != "Selecione") {
//     $sql_terceiros .= " AND EXTRACT(YEAR FROM t.data_lancamento) = " . intval($ano);
// }
// if ($mes && $mes != "Selecione") {
//     $sql_terceiros .= " AND EXTRACT(MONTH FROM t.data_lancamento) = " . intval($mes);
// }
// if (!empty($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 ";
//     }
// }
// if (!empty($semana) && $semana != 'mes') {
//     $sql_terceiros .= " AND  t.data_lancamento BETWEEN '$data_inicio' AND '$data_fim'";
// }

// Aplicar filtro de datas otimizado
if (!empty($data_inicio_sql) && !empty($data_fim_sql)) {
    $sql_terceiros .= " AND CAST(t.data_lancamento AS DATE) BETWEEN '$data_inicio_sql' AND '$data_fim_sql' ";
}

// 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);

// Salva em array para podermos usar o foreach múltiplas vezes sem esgotar o ponteiro
$array_terceiros = [];
if ($result_terceiros && $result_terceiros->num_rows > 0) {
    while ($row_t = $result_terceiros->fetch_assoc()) {
        $array_terceiros[] = $row_t;
    }
}

// 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);
}

?>

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

<body>

    <div class="col-12">
        <div style="display: flex; justify-content: space-between; align-items: center;">

        </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>
                        <th scope="col" rowspan="2">Vendedor</th>
                        <?php if ($exibirManipulado) { ?>
                            <?php if (count($array_terceiros) > 0) : ?>
                                <th scope="col" colspan="4">Manipulado</th>
                            <?php else : ?>
                                <th scope="col" colspan="3">Manipulado</th>
                            <?php endif; ?>
                        <?php } ?>

                        <?php if ($exibirRevenda) { ?>
                            <th scope="col" colspan="3">Revenda</th>
                        <?php } ?>

                        <?php if ($exibirMarcaPropria) { ?>
                            <th scope="col" colspan="3">Marca Própria</th>
                        <?php } ?>

                        <th scope="col" colspan="3">Total Geral</th>
                    </tr>
                    <tr class="text-center">
                        <?php if ($exibirManipulado) { ?>
                            <th scope="col">Meta</th>
                            <th scope="col">Realizado</th>
                            <?php if (count($array_terceiros) > 0) : ?>
                                <!-- Exibe a coluna de terceiros apenas se houver algum valor -->
                                <th scope="col">Terceiros</th>
                            <?php endif; ?>
                            <th scope="col">Projeção</th>
                        <?php } ?>

                        <?php if ($exibirRevenda) { ?>
                            <th scope="col">Meta</th>
                            <th scope="col">Realizado</th>
                            <th scope="col">Projeção</th>
                        <?php } ?>

                        <?php if ($exibirMarcaPropria) { ?>
                            <th scope="col">Meta</th>
                            <th scope="col">Realizado</th>
                            <th scope="col">Projeção</th>
                        <?php } ?>

                        <th scope="col">Meta</th>
                        <th scope="col">Realizado</th>
                        <th scope="col">Projeção</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['SOMA'];
                            $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;

                    $totalmetaValorManipulado = 0;
                    $totalmetaValorMarcaPropria = 0;
                    $totalmetaValorRevenda = 0;
                    $totalmetaSoma = 0;
                    $totalTerceirosGeral = 0;

                    // Calcular totais e gerar linhas da tabela
                    foreach ($dataManipulado as $cdfunre => $manipulado) {
                        $revenda = $dataRevenda[$cdfunre] ?? 0;
                        $marca_propria = $dataMarca[$cdfunre] ?? 0;
                        $total = $manipulado + $revenda + $marca_propria;
                        $nomefun = $nomesVendedores[$cdfunre] ?? ''; // Obtém o nome do vendedor

                        // Total de Manipulado deve considerar apenas o realizado de Manipulado
                        $totalManipulado += $manipulado;
                        $totalRevenda += $revenda;
                        $totalMarca += $marca_propria;
                        $metaValorManipulado = null;
                        $metaValorMarcaPropria = null;
                        $metaValorRevenda = null;
                        $totalmetaSoma = null;

                        //Totais Metas


                        // Inicializar variável para somar os valores de META_SOMA
                        $totalMetaSoma = 0;

                        // Iterar sobre o array de metas
                        foreach ($metas as $meta) {
                            // Verificar se o código do funcionário corresponde ao desejado
                            if ($meta['CODIGO_FUNCIONARIO'] == $cdfunre) {
                                // Somar META_SOMA ao total
                                $totalMetaSoma += $meta['META_SOMA'];

                                // Somar valores adicionais, caso necessário
                                if ($exibirManipulado) {
                                    $metaValorManipulado += $meta['META_VALOR_MANIPULADO'];
                                }
                                if ($exibirMarcaPropria) {
                                    $metaValorMarcaPropria += $meta['META_VALOR_MARCA_PROPRIA'];
                                }
                                if ($exibirRevenda) {
                                    $metaValorRevenda += $meta['META_VALOR_REVENDA'];
                                }
                            }

                            $totalCombinado = $metaValorManipulado + $metaValorRevenda + $metaValorMarcaPropria;
                        }
                    ?>

                        <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(' ', $nomefun); // Dividindo o nome completo em partes

                                    if (count($partes_nome) >= 2) { // Verifica se há pelo menos nome e sobrenome
                                        $primeiro_nome = $partes_nome[0]; // Primeiro nome
                                        $segundo_nome = $partes_nome[1]; // Segundo nome

                                        // Exibindo apenas o primeiro e o segundo nome
                                        echo $primeiro_nome . ' ' . $segundo_nome;
                                    } else {
                                        // Se não houver nome e sobrenome suficientes, exibe o nome completo sem alterações
                                        echo $nomefun;
                                    }
                                    ?>
                                </span>
                            </td>


                            <?php
                            if ($exibirManipulado) { ?>

                                <td width='89'>
                                    <div align='center'> <?php echo htmlspecialchars(number_format($metaValorManipulado, 2, ',', '.')); ?></div>
                                </td>

                                <td width='89'>
                                    <div align='center'> <?php echo htmlspecialchars(number_format($manipulado, 2, ',', '.')); ?></div>
                                </td>
                                <!-- Calcula o total de terceiros -->
                                <?php
                                $total_terceiros = 0; // Inicializa o total de terceiros
                                foreach ($array_terceiros as $row_t) {
                                    if ($row_t['cod_fcerta'] == $cdfunre) {
                                        // Se o Código  Pharmacie corresponder ao código de funcionário atual
                                        $total_terceiros += $row_t['valor_terceiros']; // Adiciona ao total de terceiros
                                        $totalTerceirosGeral += $row_t['valor_terceiros'];
                                    }
                                }
                                ?>

                                <?php if (count($array_terceiros) > 0) : ?>
                                    <!-- Exibe o total de terceiros apenas na coluna específica de Terceiros -->
                                    <td><?= number_format($total_terceiros, 2, ',', '.') ?></td>
                                <?php endif; ?>
                                <td> <?php
                                        if ($anoAtual == $ano && $mesAtual == $mes) {
                                            if ($metaValorManipulado != 0 && $peso_diaatual != 0 && $pesoUltimoDia != 0) {
                                                // Projeção de Manipulado considera apenas valores de Manipulado
                                                $percentage = sprintf("%.2f", ($manipulado / $peso_diaatual) * $pesoUltimoDia / $metaValorManipulado * 100);
                                                $percentage = number_format($percentage, 2, ',', '.');
                                                $percentageManipulado = (float) str_replace('.', '', $percentage);
                                        ?>
                                            <span class="badge badge-pill <?php echo getBadgeClass($percentageManipulado); ?>">
                                                <?php echo $percentage; ?>%
                                            </span>
                                        <?php
                                            } else {
                                                // Se $metaManipulado for zero, define $percentage como zero
                                                $percentage = 0;
                                        ?>
                                            <span class="badge badge-pill <?php echo getBadgeClass($percentage); ?>">
                                                <?php echo $percentage; ?>%
                                            </span>
                                        <?php
                                            }
                                        } else {
                                            if ($metaValorManipulado != 0) { // Adiciona a validação aqui
                                                // Fora do mês atual, continua considerando apenas Manipulado
                                                $percentage = sprintf("%.2f", ($manipulado / $metaValorManipulado) * 100);
                                                $percentage = number_format($percentage, 2, ',', '.');
                                                $percentageManipulado = (float) str_replace('.', '', $percentage);
                                        ?>
                                            <span class="badge badge-pill <?php echo getBadgeClass($percentageManipulado); ?>">
                                                <?php echo $percentage; ?>%
                                            </span>
                                        <?php
                                            } else {
                                                // Se $metaManipulado for zero, define $percentage como zero
                                                $percentage = 0;
                                        ?>
                                            <span class="badge badge-pill <?php echo getBadgeClass($percentage); ?>">
                                                <?php echo $percentage; ?>%
                                            </span>
                                    <?php
                                            }
                                        }
                                    ?>
                                </td>

                            <?php } ?>

                            <?php if ($exibirRevenda) { ?>

                                <td width='89'>
                                    <div align='center'> <?php echo htmlspecialchars(number_format($metaValorRevenda, 2, ',', '.')); ?></div>
                                </td>

                                <td width='89'>
                                    <div align='center'> <?php echo htmlspecialchars(number_format($revenda, 2, ',', '.')); ?></div>
                                </td>
                                <td>
                                    <?php
                                    if ($anoAtual == $ano && $mesAtual == $mes) {
                                        if ($metaValorRevenda != 0 && $peso_diaatual != 0 && $pesoUltimoDia != 0) {
                                            $percentage = sprintf("%.2f", ($revenda / $peso_diaatual) * $pesoUltimoDia / $metaValorRevenda * 100);
                                            $percentage = number_format($percentage, 2, ',', '.');
                                            $percentageRevanda = (float) str_replace('.', '', $percentage);
                                    ?>
                                            <span class="badge badge-pill <?php echo getBadgeClass($percentageRevanda); ?>">
                                                <?php echo $percentage; ?>%
                                            </span>
                                        <?php
                                        } else {
                                            // Se $metaManipulado for zero, define $percentage como zero
                                            $percentage = 0;
                                        ?>
                                            <span class="badge badge-pill <?php echo getBadgeClass($percentage); ?>">
                                                <?php echo $percentage; ?>%
                                            </span>
                                        <?php
                                        }
                                    } else {
                                        if ($metaValorRevenda != 0) { // Adiciona a validação aqui
                                            $percentage = sprintf("%.2f", ($revenda / $metaValorRevenda) * 100);
                                            $percentage = number_format($percentage, 2, ',', '.');
                                            $percentageRevanda = (float) str_replace('.', '', $percentage);
                                        ?>
                                            <span class="badge badge-pill <?php echo getBadgeClass($percentageRevanda); ?>">
                                                <?php echo $percentage; ?>%
                                            </span>
                                        <?php
                                        } else {
                                            // Se $metaManipulado for zero, define $percentage como zero
                                            $percentage = 0;
                                        ?>
                                            <span class="badge badge-pill <?php echo getBadgeClass($percentage); ?>">
                                                <?php echo $percentage; ?>%
                                            </span>
                                    <?php
                                        }
                                    }
                                    ?>
                                </td>

                            <?php } ?>

                            <?php if ($exibirMarcaPropria) { ?>

                                <td width='89'>
                                    <div align='center'> <?php echo htmlspecialchars(number_format($metaValorMarcaPropria, 2, ',', '.')); ?></div>
                                </td>
                                <td width='89'>
                                    <div align='center'> <?php echo htmlspecialchars(number_format($marca_propria, 2, ',', '.')); ?></div>
                                </td>
                                <td><?php
                                    if ($anoAtual == $ano && $mesAtual == $mes) {
                                        if ($metaValorMarcaPropria != 0 && $peso_diaatual != 0 && $pesoUltimoDia != 0) {
                                            $percentage = sprintf("%.2f", ($marca_propria / $peso_diaatual) * $pesoUltimoDia / $metaValorMarcaPropria * 100);
                                            $percentage = number_format($percentage, 2, ',', '.');
                                            $percentageMarca = (float) str_replace('.', '', $percentage);
                                    ?>
                                            <span class="badge badge-pill <?php echo getBadgeClass($percentageMarca); ?>">
                                                <?php echo $percentage; ?>%
                                            </span>
                                        <?php
                                        } else {
                                            // Se $metaManipulado for zero, define $percentage como zero
                                            $percentage = 0;
                                        ?>
                                            <span class="badge badge-pill <?php echo getBadgeClass($percentage); ?>">
                                                <?php echo $percentage; ?>%
                                            </span>
                                        <?php
                                        }
                                    } else {
                                        if ($metaValorMarcaPropria != 0) { // Adiciona a validação aqui
                                            $percentage = sprintf("%.2f", ($marca_propria / $metaValorMarcaPropria) * 100);
                                            $percentage = number_format($percentage, 2, ',', '.');
                                            $percentageMarca = (float) str_replace('.', '', $percentage);
                                        ?>
                                            <span class="badge badge-pill <?php echo getBadgeClass($percentageMarca); ?>">
                                                <?php echo $percentage; ?>%
                                            </span>
                                        <?php
                                        } else {
                                            // Se $metaManipulado for zero, define $percentage como zero
                                            $percentage = 0;
                                        ?>
                                            <span class="badge badge-pill <?php echo getBadgeClass($percentage); ?>">
                                                <?php echo $percentage; ?>%
                                            </span>
                                    <?php
                                        }
                                    }
                                    ?>
                                </td>

                            <?php } ?>

                            <td width='89'>
                                <div align='center'>
                                    <?php
                                    // Inicializa a variável com 0 caso não esteja definida
                                    $totalCombinado = $totalCombinado ?? 0;

                                    // Exibe o valor formatado
                                    echo htmlspecialchars(number_format($totalCombinado, 2, ',', '.'));
                                    ?>
                                </div>
                            </td>
                            <td width='89' data-order="<?php echo $total + $total_terceiros ?>">
                                <!-- Total Geral realizado não deve somar Terceiros, que já possui sua própria coluna -->
                                <div align='center'> <?php echo htmlspecialchars(number_format($total + $total_terceiros, 2, ',', '.')); ?></div>
                            </td>
                            <td>
                                <?php
                                // Verifica se estamos no mesmo ano e mês


                                if ($totalCombinado != 0 && $peso_diaatual != 0 && $pesoUltimoDia != 0) {
                                    // Projeção do Total Geral considera apenas Manipulado + Revenda + Marca Própria
                                    $percentage = (($total + $total_terceiros) / $peso_diaatual) * $pesoUltimoDia / $totalCombinado * 100;
                                } else {
                                    // Define a porcentagem como 0 se qualquer valor relevante for 0
                                    $percentage = 0;
                                }


                                // Formata a porcentagem e converte para uso na classe do badge
                                $percentageFormatted = number_format($percentage, 2, ',', '.');
                                $percentageGeral = (float) str_replace('.', '', $percentageFormatted);

                                // Exibe o badge com a classe apropriada
                                ?>
                                <span class="badge badge-pill <?php echo getBadgeClass($percentageGeral); ?>">
                                    <?php echo $percentageFormatted; ?>%
                                </span>
                            </td>
                        </tr>

                    <?php

                        $totalmetaValorManipulado += $metaValorManipulado;
                        $totalmetaValorMarcaPropria += $metaValorMarcaPropria;
                        $totalmetaValorRevenda += $metaValorRevenda;
                        $totalmetaSoma += $totalCombinado;
                    }
                    ?>

                    <thead class="thead-light text-center">
                        <tr>
                            <th scope="row">Total</th>
                            <!-- Totais de Manipulado -->
                            <?php if ($exibirManipulado) { ?>
                                <th scope="col"> <?php echo htmlspecialchars(number_format($totalmetaValorManipulado, 2, ',', '.')); ?></th>

                                <th scope="col"> <?php echo htmlspecialchars(number_format($totalManipulado, 2, ',', '.')); ?></th>

                                <?php if ($result_terceiros->num_rows > 0) : ?>
                                    <th scope="col"> <?php echo htmlspecialchars(number_format($totalTerceirosGeral, 2, ',', '.')); ?></th>
                                <?php endif; ?>
                                <th scope="col">
                                    <?php
                                    $manip_vendedor = 0; // Declare a variável $manip_vendedor aqui
                                    $percentagemanip_vendedor = 0; // Valor padrão para o badge

                                    if ($anoAtual == $ano && $mesAtual == $mes) {
                                        if ($totalmetaValorManipulado != 0 && $peso_diaatual != 0 && $pesoUltimoDia != 0) {
                                            $manip_vendedor = number_format(($totalManipulado / $peso_diaatual) * $pesoUltimoDia / $totalmetaValorManipulado * 100,
                                                2,
                                                ',',
                                                '.'
                                            );
                                            $percentagemanip_vendedor = (float) str_replace('.', '', $manip_vendedor);
                                        }
                                    } else {
                                        // Adiciona a validação aqui
                                        if ($totalmetaValorManipulado != 0) {
                                            $manip_vendedor = number_format(($totalManipulado / $totalmetaValorManipulado) * 100,
                                                2,
                                                ',',
                                                '.'
                                            );
                                            $percentagemanip_vendedor = (float) str_replace('.', '', $manip_vendedor);
                                        }
                                    }
                                    ?>

                                    <span class="badge badge-pill <?php echo getBadgeClass($percentagemanip_vendedor); ?>">
                                        <?php echo $manip_vendedor; ?>%
                                    </span>

                                </th>
                            <?php } ?>
                            <!-- Totais de Revenda -->

                            <?php if ($exibirRevenda) { ?>
                                <th scope="col"> <?php echo htmlspecialchars(number_format($totalmetaValorRevenda, 2, ',', '.')); ?></th>
                                <th scope="col"> <?php echo htmlspecialchars(number_format($totalRevenda, 2, ',', '.')); ?></th>

                                <th scope="col">
                                    <?php
                                    $rev_vendedor = 0; // Declare a variável $rev_vendedor aqui
                                    $percentagerev_vendedor = 0; // Valor padrão para o badge

                                    if ($anoAtual == $ano && $mesAtual == $mes) {
                                        if ($totalmetaValorRevenda != 0 && $peso_diaatual != 0 && $pesoUltimoDia != 0) {
                                            $rev_vendedor = number_format(($totalRevenda / $peso_diaatual) * $pesoUltimoDia / $totalmetaValorRevenda * 100,
                                                2,
                                                ',',
                                                '.'
                                            );
                                            $percentagerev_vendedor = (float) str_replace('.', '', $rev_vendedor);
                                        }
                                    } else {
                                        // Adiciona a validação aqui
                                        if ($totalmetaValorRevenda != 0) {
                                            $rev_vendedor = number_format(($totalRevenda / $totalmetaValorRevenda) * 100,
                                                2,
                                                ',',
                                                '.'
                                            );
                                            $percentagerev_vendedor = (float) str_replace('.', '', $rev_vendedor);
                                        }
                                    }
                                    ?>

                                    <span class="badge badge-pill <?php echo getBadgeClass($percentagerev_vendedor); ?>">
                                        <?php echo $rev_vendedor; ?>%
                                    </span>
                                </th>

                            <?php } ?>

                            <?php if ($exibirMarcaPropria) { ?>
                                <!-- Totais de Marca Propria -->
                                <th scope="col"> <?php echo htmlspecialchars(number_format($totalmetaValorMarcaPropria, 2, ',', '.')); ?></th>
                                <th scope="col"> <?php echo htmlspecialchars(number_format($totalMarca, 2, ',', '.')); ?></th>

                                <th scope="col">
                                    <?php
                                    $marca_vendedor = 0; // Declare a variável $marca_vendedor aqui
                                    $percentagemarca_vendedor = 0; // Valor padrão para o badge

                                    if ($anoAtual == $ano && $mesAtual == $mes) {
                                        if ($totalmetaValorMarcaPropria != 0 && $peso_diaatual != 0 && $pesoUltimoDia != 0) {
                                            $marca_vendedor = number_format(($totalMarca / $peso_diaatual) * $pesoUltimoDia / $totalmetaValorMarcaPropria * 100, 2, ',', '.');
                                            $percentagemarca_vendedor = (float) str_replace('.', '', $marca_vendedor);
                                        }
                                    } else {
                                        // Adiciona a validação aqui
                                        if ($totalmetaValorMarcaPropria != 0) {
                                            $marca_vendedor = number_format(($totalMarca / $totalmetaValorMarcaPropria) * 100,
                                                2,
                                                ',',
                                                '.'
                                            );
                                            $percentagemarca_vendedor = (float) str_replace('.', '', $marca_vendedor);
                                        }
                                    }
                                    ?>

                                    <span class="badge badge-pill <?php echo getBadgeClass($percentagemarca_vendedor); ?>">
                                        <?php echo $marca_vendedor; ?>%
                                    </span>
                                </th>
                            <?php } ?>
                            <!-- Totais de Total Geral -->
                            <th scope="col"> <?php echo htmlspecialchars(number_format($totalmetaValorMarcaPropria + $totalmetaValorRevenda + $totalmetaValorManipulado, 2, ',', '.')); ?></th>
                            <!-- Total Geral realizado: soma apenas das colunas de vendas (sem Terceiros) -->
                            <th scope="col"> <?php echo htmlspecialchars(number_format($totalManipulado + $totalRevenda + $totalMarca + $totalTerceirosGeral, 2, ',', '.')); ?></th>

                            <th scope="col">
                                <?php
                                $total_vendedor = '0,00'; // Valor padrão inicial
                                $percentagetotal_vendedor = 0; // Valor padrão inicial
                                $totalAcumulado = $totalmetaValorMarcaPropria + $totalmetaValorRevenda + $totalmetaValorManipulado;


                                // Verifica se todos os valores necessários são diferentes de zero
                                if (($totalManipulado + $totalRevenda + $totalMarca + $totalTerceirosGeral) != 0 && $peso_diaatual != 0 && $pesoUltimoDia != 0 && $totalAcumulado != 0) {
                                    $total_vendedor = number_format(
                                        ((($totalManipulado + $totalRevenda + $totalMarca + $totalTerceirosGeral) / $peso_diaatual) * $pesoUltimoDia / $totalAcumulado) * 100,
                                        2,
                                        ',',
                                        '.'
                                    );
                                    $percentagetotal_vendedor = (float) str_replace('.', '', $total_vendedor);
                                }

                                ?>

                                <span class="badge badge-pill <?php echo getBadgeClass($percentagetotal_vendedor); ?>">
                                    <?php echo $total_vendedor; ?>%
                                </span>
                            </th>

                        </tr>
                    </thead>

                </tbody>
            </table>
        </div>


    </div>
    </div>

    </div> <!-- end container -->
    </div>

    <!-- Modal -->
    <div class="modal fade" id="exampleModal" tabindex="-1" aria-labelledby="exampleModalLabel" aria-hidden="true">
        <div class="modal-dialog modal-xl">
            <div class="modal-content">
                <div class="modal-header">
                    <h4 class="modal-title" id="standard-modalLabel">Detalhamento por Vendedor</h4>
                    <!-- Adicione um botão de fechar -->
                    <button type="button" class="btn-close" data-dismiss="modal" aria-label="Close"></button>
                </div>
                <div class="modal-body">
                    <div id="detalhes-produto-container">
                        <!-- O conteúdo da página detalhes_vendedor.php será carregado aqui -->
                    </div>
                </div>
                <div class="modal-footer">
                    <button type="button" class="btn btn-light" data-dismiss="modal">Fechar</button>
                </div>
            </div>
        </div>
    </div>




</body>

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

<!-- third party js -->
<script src="https://code.jquery.com/jquery-3.6.0.min.js"></script>

<style>
    /* Estilo para o indicador de carregamento */
    .loading-indicator {
        border: 8px solid #f3f3f3;
        /* Cor de fundo */
        border-top: 8px solid #3498db;
        /* Cor da bolinha */
        border-radius: 50%;
        /* Formato de bolinha */
        width: 40px;
        /* Tamanho da bolinha */
        height: 40px;
        /* Tamanho da bolinha */
        animation: spin 1s linear infinite;
        /* Animação de rotação */
        margin: 0 auto;
        /* Centralizar a bolinha */
    }

    /* Animação de rotação */
    @keyframes spin {
        0% {
            transform: rotate(0deg);
        }

        100% {
            transform: rotate(360deg);
        }
    }
</style>


<script>
    $(document).ready(function() {
        $('.open-modal-btn').click(function() {
            // Exibir mensagem de carregamento
            $('#detalhes-produto-container').html('<div class="loading-indicator"></div><p>Carregando...</p>');
            var codigo = $(this).data('codigo');
            var nome = $(this).data('nome');
            $.ajax({
                url: 'detalhes_vendedor.php',
                method: 'GET',
                data: {
                    cod: codigo,
                    nome: nome,
                    filial: '<?php echo htmlspecialchars($filial); ?>',
                    ano: '<?php echo htmlspecialchars($ano); ?>',
                    mes: '<?php echo htmlspecialchars($mes); ?>',
                    cidade: '<?php echo htmlspecialchars($cidade); ?>',
                    periodo: '<?php echo htmlspecialchars($periodo); ?>',
                    semana: '<?php echo htmlspecialchars($semana); ?>',
                    dias_restantes: '<?php echo htmlspecialchars($diasrestantes); ?>'
                },
                success: function(response) {
                    $('#detalhes-produto-container').html(response);
                    $('#exampleModal').modal('show'); // Abrir o modal após carregar os detalhes
                },
                error: function(xhr, status, error) {
                    console.error(error);
                }
            });
        });
    });
</script>

<script>
    document.addEventListener("DOMContentLoaded", function() {
        const modalLinkElements = document.querySelectorAll(".open-modal-link");
        const modalContainer = document.getElementById("detalhes-produto-container");

        modalLinkElements.forEach(function(element) {
            element.addEventListener("click", function(event) {
                event.preventDefault();
                const requisicaoId = element.getAttribute("data-produto");
                const nome = element.getAttribute("data-nome");

                // Carregue a modal
                const modal = new bootstrap.Modal(document.getElementById("exampleModal"));
                modal.show();

                // Carregue o conteúdo da página buscar_detalhes_requisicao.php na modal
                modalContainer.innerHTML = '<p>Carregando...</p>';
                fetch('detalhes_vendedor.php?cod=' + encodeURIComponent(requisicaoId) + '&nome=' + encodeURIComponent(nome) + '&filial=<?php echo urlencode($filial); ?>&ano=<?php echo urlencode($ano); ?>&mes=<?php echo urlencode($mes); ?>&dias_restantes=<?php echo urlencode($diasrestantes); ?>' +
                        '&periodo=<?php echo urlencode($periodo); ?>' +
                        '&semana=<?php echo urlencode($semana); ?>')

                    .then(response => response.text())
                    .then(data => {
                        modalContainer.innerHTML = data;
                    });
            });
        });
    });


    //REMOVER O CINZA APÓS FECHAR A MODAL E PERMITIR O SCROLL
    $(document).on('click', '.btn-close', function() {
        $('body').removeClass('modal-open'); // Remover a classe que impede o scroll
        $('.modal-backdrop').remove(); // Remover o fundo cinza
    });
</script>