O exemplo a seguir listará a distribuição de carteiras de ações que um cliente investidor possui em seu perfil, de acordo com objetivo percentual definido respectivamente às mesmas. De acordo com a base de dados, cada carteira de ações possui ações vinculadas, e essas possuem quantidades de saldo, e um valor de cotação atual. O gráfico a seguir mostrará a distribuição do patrimônio atual que o cliente investidor possui, com relação à cada carteira de ações de seu perfil. Confira toda a Regra de Negócios e funcionamento no Github do projeto.
Google Charts Github do Projeto
1- Importar, no <head>, API Google Charts:
<script type="text/javascript" src="https://www.gstatic.com/charts/loader.js"></script>
2- Desenvolver <script> do gráfico:
<script type="text/javascript">
google.charts.load("current", {packages: ["corechart"]} );
google.charts.setOnLoadCallback(drawChart);
function drawChart() {
let data = google.visualization.arrayToDataTable([
['Objetivo', 'Part. Atual'],
<?php
//Consulta e cálculos na base de dados
$r = $db->prepare("SELECT * FROM carteira WHERE cpfCliente=?");
$r->execute(array($_SESSION['cpf']));
$linhas = $r->fetchAll(PDO::FETCH_ASSOC);
foreach ($linhas as $l) {
$patrAtualizado = 0;
$r = $db->prepare("SELECT * FROM carteira_acao WHERE idCarteira=?");
$r->execute(array($l['id']));
$linhas2 = $r->fetchAll(PDO::FETCH_ASSOC);
foreach ($linhas2 as $l2) {
$r = $db->prepare("SELECT * FROM acao WHERE ativo=?");
$r->execute(array($l2['ativoAcao']));
$linhas3 = $r->fetchAll(PDO::FETCH_ASSOC);
foreach ($linhas3 as $l3) {
$valorAcao = $l3['cotacaoAtual'] * $l2['qtdAcao'];
$patrAtualizado += $valorAcao;
}
}
if ($totalCarteiras == 0) {$partAtual = 0;}
else {$partAtual = ($patrAtualizado * 100) / $totalCarteiras;}
//Linha do gráfico
echo "['" . $l['objetivo'] . "', " . $partAtual . "],";
}
?>
]);
let options = {title: 'Participação Atual em Carteiras', pieHole: 0.4};
let chart = new google.visualization.PieChart(document.getElementById('graficoDonutUBSocial'));
chart.draw(data, options);
}
</script>
3- Mostrar gráfico:
<div id="graficoDonutUBSocial" style="width: 700px; height: 500px; margin: auto;"></div>
Código do gráfico: Acesse
Elaborado por Mateus Schwede
ubsocial.github.io