, Correçoes UX consolidaçoes e de backa-end
This commit is contained in:
@@ -348,9 +348,20 @@
|
||||
<%# Composição por tipo (rosca) %>
|
||||
<div class="bg-[#1a1a1a] rounded-2xl border border-white/5 p-6">
|
||||
<h2 class="text-lg font-semibold text-white mb-1 flex items-center gap-2"><%= icone :composicao, espaco: false %> Composição do custo</h2>
|
||||
<p class="text-gray-400 text-sm mb-4">Por tipo de lançamento</p>
|
||||
<p class="text-gray-400 text-sm mb-4">Por tipo de lançamento, antes dos descontos</p>
|
||||
<% if @fin_por_tipo.any? %>
|
||||
<div class="relative h-64"><canvas id="grafico-composicao-tipo"></canvas></div>
|
||||
<%# A rosca soma os pilares que ACRESCENTAM valor; o desconto subtrai e
|
||||
não cabe como fatia (ver DashboardController#carregar_dados_financeiro).
|
||||
Quando existe desconto, a diferença entre a soma das fatias e o
|
||||
"Custo total" do topo é exatamente esta linha — dita aqui, no lugar
|
||||
onde ela aparece, e não em documentação (diretriz 1). %>
|
||||
<% if @fin_descontos.to_f.positive? %>
|
||||
<p class="text-gray-400 text-xs mt-4 pt-3 border-t border-white/5">
|
||||
<span class="text-gray-300 font-semibold">− <%= moeda(@fin_descontos) %></span>
|
||||
em descontos, já abatidos no Custo total.
|
||||
</p>
|
||||
<% end %>
|
||||
<% else %>
|
||||
<div class="text-center py-8 text-gray-400"><div class="mb-2"><%= icone :composicao, tamanho: 'w-8 h-8', cor: 'text-gray-600', espaco: false %></div><p class="text-sm">Sem dados no período</p></div>
|
||||
<% end %>
|
||||
@@ -916,7 +927,10 @@
|
||||
Chart.getChart(ctx)?.destroy();
|
||||
const labels = <%= raw @fin_por_tipo.map { |h| h[:label] }.to_json %>;
|
||||
const valores = <%= raw @fin_por_tipo.map { |h| h[:valor] }.to_json %>;
|
||||
const cores = ['#f97316', '#9a3412', '#fed7aa', '#374151', '#9333ea'];
|
||||
// A cor vem junto do label (DashboardController::CORES_TIPO). Era uma lista
|
||||
// fixa de 5 cores aqui para 7 tipos possíveis: o Chart.js reciclava e
|
||||
// "Entrega de Termo" saía com a mesma laranja de "Entrega Normal".
|
||||
const cores = <%= raw @fin_por_tipo.map { |h| h[:cor] }.to_json %>;
|
||||
new Chart(ctx, {
|
||||
type: 'doughnut',
|
||||
data: { labels: labels, datasets: [{ data: valores, backgroundColor: cores, borderColor: '#1a1a1a', borderWidth: 3 }] },
|
||||
|
||||
Reference in New Issue
Block a user