Correção dos Graficos do Dsh de pagamento

This commit is contained in:
2026-06-17 17:20:14 -03:00
parent 70d29029f6
commit 082a1f0d87
3 changed files with 21 additions and 4 deletions

View File

@@ -125,11 +125,20 @@ class DashboardController < ApplicationController
# Visão financeira (custo) das consolidações finalizadas do período, já com o
# filtro de operação aplicado.
def carregar_dados_financeiro
consols = Consolidacao.ativas.where(status: :finalizada)
.where('data_inicio <= ? AND data_fim >= ?', @periodo_fim, @periodo_inicio)
consols = consols.com_operacoes(@operacao_filtro) if @operacao_filtro.present?
consols = consols.to_a
intervalo = @periodo_inicio.beginning_of_day..@periodo_fim.end_of_day
base = Consolidacao.ativas.where(status: :finalizada)
base = base.com_operacoes(@operacao_filtro) if @operacao_filtro.present?
# Consolidações relevantes ao período: as que CRUZAM o período OU que tiveram
# algum pagamento feito dentro do período. Sem o 2º caso, pagar uma
# consolidação de outro mês não mexia nos gráficos (só na tabela de pagamentos).
ids_periodo = base.where('data_inicio <= ? AND data_fim >= ?', @periodo_fim, @periodo_inicio).ids
ids_pagos = ConsolidacaoMotorista.where(pago_em: intervalo)
.where(consolidacao_id: base.select(:id))
.distinct.pluck(:consolidacao_id)
consols = Consolidacao.where(id: (ids_periodo + ids_pagos).uniq).to_a
ids = consols.map(&:id)
cms = ConsolidacaoMotorista.where(consolidacao_id: ids)
ces = ConsolidacaoEntrega.where(consolidacao_id: ids)