diff --git a/app/controllers/dashboard_controller.rb b/app/controllers/dashboard_controller.rb index 6e91a95..f56ec92 100644 --- a/app/controllers/dashboard_controller.rb +++ b/app/controllers/dashboard_controller.rb @@ -88,17 +88,26 @@ class DashboardController < ApplicationController end def carregar_dados_pagamentos - finalizadas = @consolidacoes_mes.where(status: :finalizada) - cms = ConsolidacaoMotorista.where(consolidacao_id: finalizadas.select(:id)) + intervalo = @periodo_inicio.beginning_of_day..@periodo_fim.end_of_day - @pag_pago_qtd = cms.pagos.count - @pag_pend_qtd = cms.pendentes.count - @pag_pago_valor = cms.pagos.sum(:valor_total) - @pag_pend_valor = cms.pendentes.sum(:valor_total) + # PAGOS: filtrados pela DATA DO PAGAMENTO (pago_em) dentro do período do topo + # — "quanto foi pago neste período". + pagos = ConsolidacaoMotorista + .joins(:consolidacao) + .where(consolidacoes: { status: :finalizada, deleted_at: nil }) + .where(pago_em: intervalo) + @pag_pago_qtd = pagos.count + @pag_pago_valor = pagos.sum(:valor_total) - @tabela_pagamentos = finalizadas.recentes.map do |c| - { consolidacao: c, status: c.status_pagamento, pago: c.valor_pago, pendente: c.valor_pendente } - end + # PENDENTES: consolidações finalizadas cujo PERÍODO cruza o filtro, ainda sem + # pagamento (pendente não tem data de pagamento para filtrar). + finalizadas_ids = @consolidacoes_mes.where(status: :finalizada).select(:id) + pendentes = ConsolidacaoMotorista.where(consolidacao_id: finalizadas_ids).pendentes + @pag_pend_qtd = pendentes.count + @pag_pend_valor = pendentes.sum(:valor_total) + + @pagamentos_feitos = pagos.includes(:consolidacao, :pagador).order(pago_em: :desc) + @pagamentos_pendentes = pendentes.includes(:consolidacao).order(consolidacao_id: :desc) end def build_grafico_diario(entregas, preco_entrega) diff --git a/app/views/dashboard/index.html.erb b/app/views/dashboard/index.html.erb index 0783e8e..4620042 100644 --- a/app/views/dashboard/index.html.erb +++ b/app/views/dashboard/index.html.erb @@ -144,12 +144,12 @@ <%# Rosca pago vs a pagar (por valor) %>
Consolidações finalizadas no período
+Pagos por data de pagamento · pendentes no período
<% if (@pag_pago_qtd + @pag_pend_qtd).zero? %>Nenhuma consolidação finalizada no período
+Nenhum pagamento ou pendência no período
| Consolidação | -Status | -Pago | -A pagar | -||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| - <%= link_to linha[:consolidacao].nome, consolidacao_path(linha[:consolidacao]), - class: 'text-white hover:text-orange-500 font-medium' %> - | -<%= badge_pagamento(linha[:status]) %> | -<%= moeda(linha[:pago]) %> | -<%= moeda(linha[:pendente]) %> | + <%# Pagamentos realizados no período (filtrados por pago_em) %> +
| Pago em | +Motorista | +Consolidação | +Forma | +Valor |
|---|
Nenhuma consolidação finalizada no período
-Nenhum pagamento realizado neste período.
+ <% end %> +| Motorista | +Consolidação | +Valor | +
|---|---|---|
| <%= cm.motorista_nome %> | ++ <%= link_to cm.consolidacao.nome, consolidacao_path(cm.consolidacao), + class: 'text-gray-300 hover:text-orange-500' %> + | +<%= moeda(cm.valor_total) %> | +
Nenhuma pendência no período. 🎉
+ <% end %> +